用户管理详解(均为在管理员下的操作)
一:用户
添加用户
useradd -u(指定uid) 550
-d(家目录) /zisefeizhu
-g(初始组) group
-G(附加组) ad,a,ab (一个用户可以有一个或多个附加组)
-s(shell) /bin/bash
-c(注释) "this is a good boy" zisefeizhu (注释+用户名)
设置用户密码
passwd -S(大写s) +用户名 查询用户密码状态
-l(小写L)+用户名 锁定用户。其实就是在/etc/shadow文件下,
将该用户密码前面加上了两个“!!”。
-u(小写U) +用户名 解锁用户。其实就是在/etc/shadow文件下,
将该用户密码前面减去了两个“!!”。
+用户名 设置用户密码(只有管理员可以使用)
(需要输入两次密码)
echo "****" |passwd --stdin +用户名 设置用户密码(此设置只需要输入一次密码)
(一般写脚本批量设置时使用)
修改用户
usermod -u(指定uid) 250
-d(家目录) /zisefeizhu
-g(初始组) group (一般不推荐使用)
-G(附加组) ad,a,ab (一个用户可以有一个或多个附加组)
-s(shell) /bin/bash
-c(注释) "this is a good boy" zisefeizhu (注释+用户名)
-L(大写L)+用户名 锁定用户
-U(大写U)+用户名 解锁用户
修改用户密码状态
chage -l(小写L) +用户名 列出用户名详细密码状态
-d(日期) +用户名 密码最后一次修改的时间 (/etc/shadow第三个字段)
-m(天数) +用户名 两次改变密码之间相距的最小天数 (/etc/shadow第四个字段)
-M(天数) +用户名 两次改变密码之间相距的最小天数 (/etc/shadow第五个字段)
-W(天数) +用户名 密码过期警告天数 (/etc/shadow第六个字段)
-L(天数) +用户名 密码到期宽限的天数 (/etc/shadow第七个字段)
-E(天数) +用户名 账号失效时间 (/etc/shadow第八个字段)
-R(chroot) +用户名 chroot 到的目录
删除用户
userdel -r +用户名 删除用户的同是删除用户家目录
二:用户组
添加用户组
groupad -g 数字 +组名 为新组使用GID(默认从500往后开始)
-o 数字 +组名 允许创建新有重复GID的组
-p *** +组名 为新组使用此加密过的密码
-r +账号名 创建一个系统账户
修改用户组
groupmod -n 新组名 老组名 改组名
-g 新ID 老ID 改组ID
删除用户组
groupdel 组名 删除组 (如果这是一个初始组,改初始组所属用户没有删除这个组不能删 除)
将用户加入某个组
gpasswd -a 用户名 组名
将用户从某个组删除
gpasswd -d 用户名 组名
三:权限
特殊权限
SUID(set user ID):只对二进制文件有效,调用者对该文件有执行权限(x)
在执行过程中,调用者会暂时获得该文件的所有权限,该权限只在程序执行过程中有效
注:若文件原来就具有执行权限,则SUID 显示为小写的s,否则显示为大写的S。
SGID(set group ID):运行某个程序时相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组
chmod g+s 属组
chmod g-s 属组
sticky:在一个公共目录下,每一个用户都可以创建文件,删除自己的文件,但是不能删除别的用户的文件
chmod o+t 属组
chmod o-t 属组
对上述三大点的综合例子:
增加组:
groupadd deve
在root用户下创建两个用户base,hive:
useradd base -g beve /useradd hive -g beve
设置用户的密码:
echo "****" |passwd --stdin base/hive
然后创建目录:
mkdir /tmp/project
改目录及其所有文件的属组:
chown -R :deve /tmp/project 注:“:”和所要更改的属组紧挨着
用id查看两个用户的所属组,看是否添加成功
id base/hive
打开另一个终端su到base用户
su -l base
cd /tmp/project
另一个终端
su -l hive
cd /tmp/project
此时会发现创建不了文件
在任意一个用户上(除了root用户)用ls命令查看一下当前目录的权限
ls -ld 会发现权限应该是 drwxr-xr-x 所属组用户没有写的权限。
给加上
chmod g+w -R /tmp/project 此时就可以创建文件了
但是虽然可以创建文件,但是却不能一个用户编辑另外一个用户的文件,这时就要加sgid权限了
chmod g+s -R /tmp/project
操作完后,在这两个用户中随便一个用户上操作一下文件。
可以发现:可以对自己和另外一个用户的文件进行删除编辑等操作。
查看一下文件
ll
-rw-rwSr-- 1 base deve 5 11月 12 16:30 a.base
-rw-rwSr-- 1 hive deve 7 11月 12 16:26 a.hive
这就会出现一个隐患,能不能不让用户随便删除其它用户的东西,
只能编辑,查看,这时候就用到了Sticky命令
chmod o+t /tmp/project
再次查看一下文件
ll
-rw-rwSr-T 1 base deve 0 11月 12 16:32 a.base
-rw-rwSr-T 1 hive deve 7 11月 12 16:26 a.hive
然后就OK了!