5 Linux系统用户与用户组管理
5.1 用户账号的相关文件
5.1.1 /etc/passwd
cat /etc/passwd
显示:
root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000::/home/user1:/bin/bash
其中我删除了大部分,其实不止这两个。user1用户是我们在修改文件所有者的时候创建的新用户
第一列就是用户账号,
第二列是口令,是早期Unix遗留下来的,这里好像没啥用处
第三列是一个数字,是uid,是用户的标识号。系统通过数字识别用户身份。root的是0,如果把user1改为0那么系统就会认为root和user1是同一个账户。uid的取值在0-65535之间。centos7的普通用户默认从1000开始
第四列也是一个数字,是gid,这个字段对应着/etc/group中的一条记录。
第五列为注释说明
第六列为用户家目录,家目录可以自定义的
最后一列是用户的sell,用户登录后,要启动一个进程来讲用户下达的指令传给内核,这就是shell。Linux的shell有sh,csh,ksh,tcsh,bash等多种,我们的红帽系列是bash。
5.1.2 /etc/shadow
cat /etc/shadow
root:$6$zf9AmNnd39rnoFuy$K9O2PAT16pQZgBcGxvG3Uw8TUqH2Ip9CyHtMr.xOzyII8DjcMScUcJh4MpjRehvwDno3WKc5.qN3/vrdLIYOu0::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
user1:!!:17699:0:99999:7:::
第一列为用户名,
第二列为用户密码,已经加密了
第三列是上次更改密码的日期。
第四列是要过多少天才可以更改密码
第五列是密码多少天后到期
第六列是密码到期前的警告期限
第七列为账号失效期限。第八个为账号的生命周期
5.2用户和用户组管理
----------------------------------------------------------------------------------
5.2.1新增用户组
groupadd [-g GID] 组名
-g参数指定gid,如果不写系统默认gid
5.2.2删除组命令
groupdel 组名
如果组中有账户则要删除账户后才能删除组
5.2.3增加用户
useradd [-u UID] [-g GID] [-d HOME] [-M] [-s] 用户名
-u 自定义uid
-g 自定义gid
-d 自定义家目录路
-M 不建立家目录
-s 自定义shell
5.2.4删除用户
userdel [-r] 用户名
-r 删除用户使一并删除用户的家目录
5.3 用户密码管理
------------------------------------------------------------------------------------------
我们创建用户后默认没有设置密码。那么如何设置密码呢?
#passwd
更改用户root的密码
新的密码:
重新输入新的密码:
paawd: 所有的身份验证令牌已经成功更新
如果我本来就是root用户我要给普通用户修改密码如何做?
#passwd user1
更改用户user1的密码
新的密码:
重新输入新的密码:
只有root才能修改其他用户的密码,其他用户只能修改自己的密码。
5.4用户身份切换
-------------------------------------------------------------------------------------------
5.4.1 su切换
普通用户切换到root用户:su [-] username
普通用户不加username默认就是切换到root
#su
参数 - 可加可不加,
如果user1加上了-那么跟直接登录root是一样的,当前目录变为root的家目录。
如果不加-那么虽然切换到了root,当前目录没有变化,
5.4.2 sudo切换
如果我们是自己使用Linux那么有su就足够了,如果你是一位打算做运维的那么su的安全性不高,你需要使用sudo的方法来切换账号。
这里我就不过多写sudo了 因为我不用
5.4.3不允许root远程登录
这个也是作为运维的角色出于安全考虑,害怕程序员泄露了密码,然年后远程使用root的权限删除服务器的东西。我不做运维当然也不需要这个操作。这里也就不写了