首先,由一个问题引入用户与用户组:linux下怎样设置一个用户属于多个组,或一个组里有多个用户?
- 创建用户 liu123 ,赋予密码
[root@localhost /]# useradd liu123
[root@localhost /]# passwd liu123
- 创建用户组 thisis1 / thisis2
[root@localhost /]# groupadd thisis1
[root@localhost /]# groupadd thisis2
- usermod -G 组名:修改用户的附加组,其实就是把用户加入其他用户组
[root@localhost /]# usermod -G thisis1,thisis2 liu123
4.检查。一共出现三个组:组=505(liu123),507(thisis1),508(thisis2) 设置成功
[liu123@localhost /]$ id liu123
uid=504(liu123) gid=505(liu123) 组=505(liu123),507(thisis1),508(thisis2) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
一、用户(组)相关文件
- /etc/passwd :系统用户信息。查询登录后取得的默认 shell(每行的最后一个数据)。如果你不想要让这些使用者使用FTP 以外的主机资源时, 可能会给予该使用者一些怪怪的 shell,如: /sbin/nologin 。 详细的/etc/passwd参考链接: https://blog.csdn.net/jb19900111/article/details/13507825
- /etc/shadow :用户的实际加密密码和密码有效期等。权限 000
- /etc/group : 记录组 ID(GID) 和组名的对应文件。第四个字段只显示该用户组的附加用户,不显示初始组
- /etc/gshadow :保存组密码和组管理员信息。
二、用户(组)相关命令
- useradd 用户名 :添加用户。
系统在默认添加用户时,是靠 /etc/default/useradd 和 /etc/login.defs 文件定义用户的默认值的。如果我们想要修改所有新建用户的某个默认值,就可以直接修改这两个文件,而不用每个用户单独修改了。参考:http://c.biancheng.net/view/844.html - passwd 用户名 :修改密码。
passwd 用户名 #修改用户密码
passwd #修改当前用户密码,普通用户只能修改自己密码
passwd -l 用户名 #锁定用户
passwd -U 用户名 #解锁用户
passwd -S 用户名 #查看用户锁定状态
echo "123" | passwd -stdin lamp #这种做法主要是批量添加用户时,给所有的用户设定一个
初始密码。但是需要注意的是,这样设定的密码会把密码明文保存在历史命令中,会有安全隐患。所以,如果使用了这
种方式修改密码,那么应该记住两件事情:第一,手工清除历史命令;第二,强制这些新添加的用户在第一次登录时
必须修改密码(具体方法参考"chage"命令)
- usermod 用户名:修改用户信息。
usermod -G #修改用户的附加组,其实就是把用户加入其他用户组
usermod -g #更换主组为h
usermod -d #更换家目录
usermod -u #更换uid
- chage 用户名:修改用户密码状态
chage -d 0 lamp #强制 lamp 用户在第一次登陆时必须修改密码.便于批量管理。
- userdel 用户名 :删除用户
userdel -r #删除用户及家目录
手动删除用户:
vi /etc/passwd
vi /etc/shadow
vi /etc/group
vi /etc/gshadow
rm -rf /var/spod/mail/lamp #删除用户邮箱
rm -rf /home/lamp/ #删除用户的家目录
- id 用户名 :可以査询用户的UID、GID 和附加组的信息
- su - 用户名 :切换用户。
su - lxn # '-' 代表连带环境变量一起切换,不能省略,否则用户身份切换不完全
# ‘-’ 左右各一个空格
su - # 普通用户切换到 root 需要密码,
# su - == su - root
- groupadd 组名:添加组
- groupdel 祖名:刪除用户组
要删除的组不能是其他用户的初始组,也就是说这个组中没有初始用户才可以删除。如果组中有附加用户,则删除组时不受影响 - gpasswd 组名:把用户添加进组或从组中删除
gpasswd -a 用户名 组名 #把用户加入组
gpasswd -d 用户名 组名 #把用户从组中删除
- newgrp 组名 :切换用户的有效组
[lamp@localhost ~]$ touch test1 #创建文件test1
[lamp@localhost ~]$ ll test1
-rw-rw-r-- 1 lamp lamp 01月14 05:43 test1 #test1文件的默认属组是lamp组
[lamp@localhost ~]$ newgrp group1 #切换lamp用户的有效组为group1组
[lamp@localhost ~]$ touch test2 #创建文件test2
[lamp@localhost ~]$ ll test2
-rw-r--r-- 1 lamp group1 01月 14 05:44 test2 #test文件的默认属组是group1组
三、sudo权限管理机制:
管理员授权普通用户去执行一些 root 执行的操作, 不需要知道root密码。 Linux为普通用户添加sudo权限,参考链接:https://www.linuxidc.com/Linux/2017-01/139361.htm