且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

linux基础--用户和组

更新时间:2022-09-13 15:41:19

用户的基本信息:/etc/passwd

用户影子口令:/etc/shadow

组的基本信息:/etc/group

组的影子口令:/etc/gshadow

1
2
3
4
5
6
7
8
/etc/passwd文件解释
[root@liang-study ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
上文中的7列分别代表:
1、登录名 2、密码占位符 3、UID 4、GID 5、用户信息 6、用户家目录 7、用户登录的shell
1
2
3
4
5
6
7
8
9
/etc/shadow文件解释
[root@liang-study ~]# cat /etc/shadow
root:$6$1hlfTKTqnWRFmdaE$PYgEWrfOPIN7PjoA3D3AYmJ37UDvEoNQfNquZGufGQ.8VfRAeLkcHmc2w6Seg5EfC51hRLvLi7s/DcjUG6UPU0:17105:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
上文中的各列代表:
1、登录名 2、加密密码,如此字段显示为!!或者*表示此用户是锁定的 
3、从1970年到密码上次修改所经过的天数 4、密码最小使用期限0表示不做限定
5、密码最长使用期限 6、密码即将过期提醒


用户类别:

 管理员:UID为0

 普通用户:UID为1-65535

   系统用户:UID为1-499

   一般用户:UID位500-65535

组类别

 私有组:创建用户是,如果没有指定属主,则会自动创建一个和用户名同名的组,此组就是私有组

 基本组:用户的默认属组

 附加组:除基本组以外的其他组


用户管理相关命令

useradd、usedel、usermod、passwd、chsh、id、chage


useradd:添加用户

格式:useradd [options] USERNAME

useradd默认配置文件:/etc/default/useradd

1
[root@liang-study home]#useradd yull

-u UID:指定用户UID,要求大于500,且未使用

-g GID:指定基本组GID,要求指定的GID事先存在

-c "str":指定用户信息,如用户全称、电话等

-d /path:指定用户家目录

-s /bin/bash:指定用户可用的shell

-r:添加系统用户


id:查看用户账号属性信息

1
2
[root@liang-study home]# id -un
root

参数: 

 -g或--group  显示用户所属群组的ID。 

 -G或--groups  显示用户所属附加群组的ID。 

 -n或--name  显示用户,所属群组或附加群组的名称。 

 -r或--real  显示实际ID。 

 -u或--user  显示用户ID。 

 -help  显示帮助。 

 -version  显示版本信息 


userdel:删除用户,默认不会删除家目录

1
[root@liang-study home]# userdel -r user01

-r USERNAME:删除用户并删除家目录


usermod:修改用户账号属性,用法和useradd几乎一致

1
[root@liang-study home]# usermod -u 1002 user01

-a -G GID:如果不适用-a选项,会覆盖用户此前的附加组

-d -m /path:指定新的家目录,并将旧家目录内容移动到新家目录中。一般一块使用

-l USERNAME:修改用户登录名

-e YYYY-MM-DD:修改用户过期时间

-L USERNAME:锁定用户账号

-U USERNAME:解锁用户账号


chsh:修改用户默认shell

1
2
3
4
[root@liang-study home]# chsh user02
Changing shell for user02.
New shell [/bin/bash]: /bin/tcsh
Shell changed.


passwd:用户密码管理

1
2
3
[root@liang-study home]# echo "123456" | passwd --stdin user02
Changing password for user user02.
passwd: all authentication tokens updated successfully.

--stdin:避免交互式输入创建密码

-l USERNAME:锁定用户

-u USERNAME:解锁密码

-d USERNAME:删除用户密码,删除密码后无法登陆,但可以su


组管理相关命令

groupadd、froupdel、groupmod、gpasswd


groupadd:添加组

1
[root@liang-study home]# groupadd mygroup

-r:添加系统组,id小于位1-499,单没有家目录


groupmod:修改组属性

1
[root@liang-study home]# groupmod -n mygroup01 mygroup

-g:修改GID

-n:修改组名


通过修改配置文件创建用户test01,基本组为test01,id号为5000

 可以完全不使用useradd、passwd等命令生成用户。

 1、创建用户家目录并设置权限,/etc/skel就是保存新建用户环境变量等信息的。每次新建用户都会讲此目录复制到/home/USERNAME下。

1
2
3
4
5
6
7
8
[root@liang-study home]# cp -r /etc/skel/ /home/test01
[root@liang-study home]# ls -lart /home/test01/
total 20
-rw-r--r--   1 root root  124 Dec 16 11:28 .bashrc
-rw-r--r--   1 root root  176 Dec 16 11:28 .bash_profile
-rw-r--r--   1 root root   18 Dec 16 11:28 .bash_logout
drwxr-xr-x. 13 root root 4096 Dec 16 11:28 ..
drwxr-xr-x   2 root root 4096 Dec 16 11:28 .

 2、赋权

1
2
3
4
[root@liang-study home]# chmod 700 -R /home/test01/
[root@liang-study home]# chown test01:test01 /home/test01/ -R
[root@liang-study home]# ls -ld /home/test01/
drwx------ 2 test01 test01 4096 Dec 16 11:28 /home/test01/

 3、添加test01组

1
2
vim /etc/group   #最后一行添加
test01:x:5000:

 4、添加test01用户

1
2
vim /etc/passwd   #最后一行添加
test01:x:5000:5000::/home/test01:/bin/bash

5、通过openssl创建密码

  通过openssl生成的即为加密后的密码。将加密后的密码添加到/etc/shadow中即可

1
2
3
[root@liang-study home]# openssl passwd -1 -salt 'test01789'
Password: 
$1$test0178$o2APM0IoDpeS.BPWhgD6b0

6、修改shadow密码文件

1
2
vim /etc/shadow   #在最后一行添加
test01:$1$test0178$ImonuusQqLhSGT1qWJSGr1:17151:0:99999:7:::

  至此用户添加完成

7、登录测试

1
2
3
[root@liang-study home]# ssh test01@192.168.210.148
test01@192.168.210.148's password: 
[test01@liang-study ~]$


本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1882854