了解账号及权限、组之的关系;管理用户;管理组;设置权限
1.了解账号及权限,组之间的关系
1)用户:包含一个名和密码,人在计算机中体现
2)组:用户集合,作用批量设置权限
3)权限:限制用户访问资源(如文件,app,进程,硬件等)
用户--权限限制--资源
组--批量限制--资源
文件系统提供权限,不同文件系统权限的实现方式不同。
head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名称:密码占位符:UID:GID:描述:家目录:登录shell
用户分为:root管理员,普通用户,程序用户
UID:root=0;程序用户=1-499;普通用户=500-65535;GID的号与UID相同
家目录:管理员/root,普通用户/home/用户名称
登录shell:正常使用的shell一般为/bin/bash;不能登录为/sbin/nologin(非交互式shell)
ls -a -l /etc/passwd /etc/shadow /etc/login.defs /etc/default/useradd /etc/skel/ ##出来Linux中与用户有关的文件
案例:
useradd u01 ##创建账号u01
tail -1 /etc/passwd ##查看新用户的信息
tail -1 /etc/shadow ##查看信用户的密码信息
shadow文件中第二个字段的四种形态:
!!:表示未初始化密码,用户不能登录,新建用户后的默认形态
加密字符串:修改过密码的形态
!!加密字符串:用户密码被锁定形态
空:用户密码清空的形态
echo 123123 | passwd --stdin u01 ##设置密码
passwd -l u01 ##锁定用户密码
passwd -d u01 ##清空用户密码,只能本地登录,不能远程登录
4)组:批量管理用户
/etc/group ##组的账号文件
tail -1 /etc/group
u01:x:500:
组名:每一个用户都有一个基本组,如果把其他用户加入到组中,该组成为其他用户附加组
GID:组ID
组的成员:默认情况下组附加组没有成员,基本的成员为对应的用户。
总结:
新建用户和组:就是在相应文件中添加记录或者根据要求复制基本数据文件。
删除用户和组:与新建相反。
2.管理用户的账号:增useradd,删userdel,改usermod,passwd,用户的文件
1)增:useradd
语法:useradd [选项] 用户名称
[选项]:-d指定用户的家目录,-M不创建家目录,-g指定gid,-G附加组,-s指定登录shell
案例:
useradd --help ##查看帮助
useradd -d /opt/hehe -s /sbin/nologin -g 1000 -G 0 hehe ##创建hehe用户
tail -1 /etc/passwd ##验证
grep hehe /etc/group ##验证hehe是在root组中
groupadd -g 1000 hehe ##创建hehe用户时若没有1000GID的组报错,创建后再新建。
2)改usermod,passwd
语法:usermod [选项] 用户
passwd 用户 ##修改密码
案例:
usermod -s /bin/bash hehe
usermod -l admin hehe ##修改hehe登录名称,root登录时不能修改
usermod -g 0 admin ##修改基本组信息
passwd admin ##交互式中修改密码
echo 123123 |passwd --stdin admin ##非交互式修改密码
passwd -l admin ##锁定账号,与usermod -L功能一样
passwd -S admin ##查看用户状态
passwd -u admin ##解锁账号,与usermod -U功能一样
3)删userdel
语法:userdel -r 用户
案例:
userdel -r admin ##-r连带家目录等信息彻底删除
3.管理组的账号:增groupadd,删groupdel,改gpasswd
1)增groupadd
语法:groupadd [选项] 组名称
案例:
groupadd -g 999 hh ##创建组hh,gid=999
grep hh /etc/group ##验证是否创建
grep root /etc/group ##查看root用户所在所有的组(查看root组信息)
2)改gpasswd
语法:gpasswd [选项] 用户 组 ##将用户加入到组中
案例:
useradd u01 ##相同方法创建u02,u03,u04
groupadd -g 1001 g01 ##创建g01组
groupadd -g 1002 g02
gpasswd -a u01 g01 ##将u01添加到g01组中,相同方法添加u02到g01中
grep g01 /etc/group ##验证u01,u02已加入g01组
gpasswd -M u03,u04 g02 ##将g02组的成员设置为u03,u04
grep g02 /etc/group ##验证
gpasswd -M u03,u04 g01 ##覆盖原有的成员
grep g01 /etc/group ##验证
gpasswd -d u03 g01 ##将u03移除g01
grep g01 /etc/group ##验证
3)删groupdel
语法:groupdel 组名
案例:
groupdel g01 ##删除g01组
总结:用户组的新建和删除都是在操作文件,用户登录后有相应特殊配置一般存放在家目录的配置文件中。
常见的配置存放文件有:
/home/用户名称/.bashrc(bash的配置文件,每一次登录或者执行bash时生效);.bash_profile(用户独立配置文件,一般设置环境变量等在用户登录生效);
.bash_logout(用户退出时的配置文件,一般可以将一些操作写入在退出时执行)
/etc/profile 所有用户的全局配置文件,
home下配置在创建用户时从/etc/skel/.*复制的。
4.设置权限:查看、改
1)查看权限
用户、组---访问控制---文件或目录
控制有:读(r)、写(w)、执行(x),目录和文件的控制有区别详见p72-4-1表。
注意:写的不能轻易给。
ls -l /etc/hosts ##查看文件的权限列表
ls -ld /home/u01 ##查看目录的权限列表
权限列表 inode数量 用户 组 日期 文件或目录名称
权限列表:
第一个表示文件的类型,如d目录,-(f)普通文件,L链接,b块设备,c字符设备,p管道文件,s套接字文件
2-4表示用户权限,如rwx,“-”表示没有权限
5-7表示组的权限,同上
8-10表除用户和组外的其他人的权限,一般为“r--”表只读
2)改:chmod改权限列表,chown改用户和组
语法:
chmod [ugoa][+-=][rwx] 文件或目录
chmod 数字 文件或目录
chmod -R 权限 文件或者目录 ##表示递归执行
案例:
mkdir /opt/test
touch /opt/test/a
ls -ld /opt/test
chmod u-w /opt/test ##去除用户写的权限
chmod u+w,g+w,o= /opt/test ##设置用户和组加写,其他人没有权限
chmod 775 /opt/test ##设置用户和组的权限为rwx,其他人权限为rx;r=4,w=2,x=1,用户权限=4+2+1=rwx
chmod -R 755 /opt/test ##递归设置权限,即目录下的所有内容都使用此权限
useradd lx
echo 123123 |passwd --stdin lx
分析:lx目前属于其他人,有rx的权限
chmod o= /opt/test
su - lx ##切换账号
cd /opt/test ##报错权限拒绝
exit
chmod o+x /opt/test
su - lx
cd /opt/test ##进入目录成功,结论:要进入目录必须给x的权限
ls ##权限拒绝
exit
chmod o+r /opt/test
su - lx
cd /opt/test
ls ##查看到a文件,结论:要查看目录中内容必须给r的权限
exit
chmod o+w /opt/test
ls -l /opt/test ##目录的权限为o=rwx,a文件的权限为o=r
su - lx
cd /opt/test
rm -rf a ##删除a文件,结论:只要对目录有写权限,目录写内容可以被删除、修改、移动,不管子文件有无权限,因此w权限一般不给其他人,慎重给u,g。
3)修改用户列表:chown
语法:
chown 用户:组 文件或目录 ##同时修改资源的用户和组
chown 用户 文件或目录 ##只修改用户
chown :组 文件或目录 ##只修改组
使用-R可以递归设置。
案例:
chown lx /opt/test ##修改用户为lx
ls -ld /opt/test
chown :g01 /opt/test ##修改组为g01
ls -ld /opt/test ##验证
chown u01:g02 /opt/test ##同时修改用户和组
chown -R u01:g02 /opt/test ##递归设置权限'
本文转自信自己belive51CTO博客,原文链接: http://blog.51cto.com/11638205/2043503,如需转载请自行联系原作者