Linux用户管理详解

用户管理详解(均为在管理员下的操作)
一:用户
添加用户
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了!






猜你喜欢

转载自blog.csdn.net/zisefeizhu/article/details/78815093