Linux用户和组相关命令

1.用户与组的相关文件

2.对用户进行操作(添加、删除、修改用户、修改用户参数、修改)

3.对组进行操作(创建、删除、修改组参数、向组中添加或者踢出用户)

4.用户和组账号查询

 

 

 

一:用户和组的相关文件

和用户相关的文件:/etc/passwd  /etc/shadow

和组相关的文件:/etc/group   /etc/gshadow

用户家目录文件来源:/etc/skel

用户属性文件:/etc/login.defs

 

etc/passwd(分为7个字段,每个字段间用:作为分隔符)

1.用户名

2.密码占位符:x

3.用户账号的UID

4.用户基本组的GID

5.用户的信息  

6.用户的家目录

7.用户登录时的shell信息(想要某个用户不能登录,可设置家目录为 /sbin/nologin和/bin/false)

 

/etc/shadow(分为9个字段,每个字段用:作为分隔符)   

1.用户名

2.密文密码(1 MD5 , 2a Blowfish,  5  SHA-256,  6 SHA-512)

3.上次密码修改时间(从1970到那一天经过了多少天)

4.密码最短有效天(从本次改密码到多久之后才可以再次修改,默认为0)

5.密码最长有效天数(密码多久会过期,默认为99999,无限制)

6.提前多少天警告用户密码过期(默认为7)

7.在密码过期之后多少天禁用此用户

8.密码失效时间

9.保留字段(未开发)

 

 

/etc/group

1.组名

2.密码占位符:x

3.GID

4.组成员列表(用,隔开,不一定全部显示)

 

用户所属组有主要组跟次要组之分

主要组查询:/etc/passwd第四个字段

次要组查询:用户可以同时属于多个组,/etc/group/文件的第四个字段

 

/etc/skel/*文件

新建用户帐号时,复制到用户宿主目录中

 

主要控制用户初始配置文件

.bash_profile:用户每次登录时执行

.bashrc:每次进入新的Bash环境时执行

.bash_logout:用户每次退出登录时执行

/etc/profile 所有用户每次登录时会执行

 

二、对用户进行操作

 1.useradd [选项]... 用户名

  选项:

  -u:指定UID,不指定从当前最大的开始加1

  -d:指定家目录,默认为/home/用户名

  -e:账号失效时间

  -g:指定用户的基本组(不指定的话,为自动为用户创建,组名和用户名相同)

  -G:指定用户的次要组

  -M:不为用户创建家目录

  -s:指定用户的登录shell

注:新建的用户是没有设置密码的,是被禁用的,不能登录

 

usermod [选项]... 用户名(修改用户参数)

与useradd功能一样,只不过此命令为修改

选项:

-l:更改用户名 uesermod -l 新用户名 旧用户名

-L:锁定用户(与passwd的选项-l功能一样,此选项加!)

-U:解锁用户账号

-c:备注

其他选项与useradd命令相同(-u,-g,-G,-d,-e,-s)

 

2.userdel [选项]...用户名

 -r:表示连同用户的家目录一起删除

 

3.passwd [选项]... 用户

不添加选项时,表示为用户设置密码

root用户可以修改所有用户密码,不要求复杂性

普通用户只能修改自己的密码,要求复杂性

 

选项:

-d:清空用户密码(用户本来有密码,清空之后,第二字段为空,无需密码即可登录,只能本地登录)

-l:锁定用户账号(第二个字段前面会存在两个!!)

-u:解锁用户账号

-S:查看用户状态是否被锁定

--stain(接受标准作为输入密码)

[root@111 ~]# echo "123456" | passwd --stdin test

Changing password for user test.

passwd: all authentication tokens updated successfully.

 

4.chage [选项]...用户

-l:列出密码时效信息(在shadow文件中也可以查看,但是此命令更明了)

-d:--lastday  chage -d 0 (用户在下次登录时必须修改密码)

 

 

三、对组进行操作

1.groupadd [选项]...用户

 -g:指定GID

2.groupdel 组名

3.groupmod [选项]... 组名

 -n:修改组名

 -g:修改GID

 

4.gpasswd [选项]...组账号名

 -a:向组内添加一个用户

 -d:删除组内某个用户

 -M:重新定义组用户,以,分隔(原先组内用户被全部踢出)

 

将用户加入组:gpasswd -a 用户名 组名

                         usermod -G 组名

Linux用户和组相关命令_第1张图片

 

四、用户和组账号查询

[root@111 ~]# id root

uid=0(root) gid=0(root) groups=0(root)

[root@111 ~]# who

root pts/0 2019-04-04 16:08 (172.16.2.50)

root pts/1 2019-04-05 01:51 (172.16.2.50)

[root@111 ~]# w

03:09:38 up 11:02, 2 users, load average: 0.00, 0.01, 0.05

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

root pts/0 172.16.2.50 16:08 44:35 28.07s 0.20s /usr/lo

root pts/1 172.16.2.50 01:51 0.00s 0.04s 0.00s w

[root@111 ~]# users

root root

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(LINUX学习)