首页 > 代码库 > Linux用户、用户管理的常见命令用法以及用户的权限管理

Linux用户、用户管理的常见命令用法以及用户的权限管理


 


 

用户和用户组的基本概念:

 Linux的用户是通过账号和密码登录到Linux系统的,而Linux主机并不会直接识别账号和密码,它只认识ID。那么Linux系统用户的ID分为以下类别:

    系统管理员:root,0-UID

    普通用户:1-65535-UID

普通用户有分为:系统用户和登录用户

    系统用户:1-999-UID

登录用户:1000-65535-UID

 

Linux用户组(GID)的分类:

    管理员组:root,0(GID)

    普通用户组:1-65535GID)

普通用户组又分为:

系统组:1-999GID)

登录用户组1000-65535GID)

一个用户可以有多个不同的组,叫做用户的基本组(主组)和附加组。基本组的组名和用户名相同,只包含一个用户,也叫私有组。基本组之外的组就是用户的附加组。

Linux用户和组相关的配置文件为/etc/passwd,此文件记录用户和用户的属性信息。

可以通过whatis passwd来查看起对应的配置文件的帮助信息。

或者也可以通过#man 5 passwd命令行去查看。

 name:password:UID:GID:GECOS:directory:shell

分别表示的信息是:用户名:密码:UID:GID:用户的注释信息:用户的家目录:用户默认的shell类型。

组的相关的配置文件/etc/group。

passwd一样可以通过命令行去查看此配置文件的帮助信息。

group_name:password:GID:user_list

分别表示的信息是:组名:密码:GID:以此组为附加组的用户列表。

/etc/shadow

    保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录,九个字段

     用户名:加密密码:最近修改密码时间:密码最短有效期:密码最长有效期:密码的警告时间段:密码禁用:账号过期日期:保留字段

当用户登录系统时,系统通过比对事先存储的信息与登录时提供的信息是否一致。

组配置文件保存的路径:

   /etc/group:保存组帐号基本信息

   /etc/gshadow:保存组帐号的密码信息

 

 

用户管理常见命令的常见用法:

1、groupadd:表示创建一个新的用户组。

-g 指定用户组的UID(默认是上一个组的GID+1)

-r 创建系统组

 

2、groupdel:删除组

 

3、groupmod:修改组属性

-g 表示修改GID

-n 表示修改组名

 

4、useradd:表示创建用户

    -u:表示指定用户的UID

     -g:表示指定用户的基本组名(此组事先必须存在)

-c:表示指明注释信息

-d:表示以指定路径为用户的家目录,通过复制/etc/skel目录,并重命名实现。指定的家目录路径如果事先存在则不会为用户复制环境的配置文件

     -r:表示创建系统用户   

     -G:指定用户的附加组名(或GID号)多个附加组用逗号隔开

      -M:表示不为用户创建主目录

      -s:指定用户的默认的Shell可用的shell列表在/etc/shells文件中

    -D:表示显示创建用户的默认配置

     

5、usermod:修改用户属性信息

-u:表示修改用户的ID

-g:表示修改用户所属的基本组

-G:表示修改用户的附加组,原来的会被覆盖。如果想保留原来的附加组,则使用-a选项,与-G一同使用则表示增加附加组。

-c:表示修改注释信息

-d:表示修改用户的家目录。用户原有的家目录文件不会被转移代新的目录中,而如果和-m选项一同使用则表示将原来的家目录移动为新的家目录。

-l:表示修改用户名

-s:表示修改用户的默认的shell

-L:锁定用户的密码

-U:解锁用户的密码

 

6、userdel:删除用户

-r:表示在删除用户的同时,删除用户的家目录

 

7、passwd:修改用户的密码

#passwd username 修改指定用户的密码,仅root有此权限。Root不需要知道其他用户原来的密码。

-l、-u:表示锁定和解锁用户的密码

-d:表示清除用户的密码

-e:过期期限

-i:非活动期限

-n:密码的最短使用期限

-x:密码的最长使用期限

-w:警告期限

--stdin:

eg:#echo 111111111 | passwd --stdin username

将某用户的密码设置为111111111

 

8、gpasswd   设置组帐号密码、添加/删除组成员 

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

   -d:从组内删除一个用户成员

   

9、newgrp:临时切换基本组

 

10、chage:改密码的 过期信息

 

11、id:查看用户的相关ID信息

-u:显示ID

-g:显示基本组的GID

-G:显示所有的附加组

-n:显示name

 

12、su:switch user 用户切换

     su - username /su -l username 表示登录式切换,重新读取用户的配置文件来重新初始化。

     su username 表示非登录式切换,不会读取目标用户的配置文件进行初始化。

-c:eg:

#su - docker -c ‘whoami’-----------docker 命令引用

 

用户的权限管理:

用户对于文件或目录的访问权限有三种分别是:

    r:readable 可读的 , 4

    w:writable 可写的  ,2

    x:excutable 可执行的 , 1

而对于文件或者目录的访问者也有三种分别是:

    user:属主,u

    group:属组,g

    other:其他,o

属主:拥有该文件或目录的用户帐号

属组:拥有该文件或目录的组帐号

 

进程对文件或目录的访问权限应用模型:访问者的访问权限与文件或目录的属主是否相同,如果相同,应用属主权限,否则检查进程的发起者是否属于属组,如果属于,则使用属组权限访问,如果不同,则使用其他访问权限访问。

被访问的对象如果是文件则:

    r:便是可获取文件的数据

    w:表示可修改文件的数据

    x:可将此文件发起运行为进程

被访问的对象如果是目录则:

    r:可用ls命令获取其下的所有文件列表

    w:可修改此目录下的文件列表

    x:可cd至此目录中,且可使用ls -l获取文件详细属性信息

权限的表示方法:

   权限、  二进制、 八进制

   ———   000        0

——x    001        1

—w—    010       2

—wx     011       3

r——     100       4

r—x      101       5

rw—      110       6

rwx       111       7

 

权限管理命令:

    chmod

    -R:表示递归

chmod u= 、g= 、o=、ug=  ..........

chmod u+ 、g+ 、o+、ug+  ..........

chmod u- 、g- 、o-、ug-  ..........

chmod 660............... file

chmod ......--reference=rfile  file........引用参考文件

 

从属关系管理命令:

chown命令

chown [OPTION]....[OWNER][:[GROUP]] FILE......

-R:表示递归

1、owner只改属主

2、owner: group 修改属主和属组

3、group只修改属组

     chgrp:修改文件的属组

     

     umask:文件或目录创建时的遮罩码,遮罩码就是创建一个文件或目录时的默认权限

    文件的默认遮罩码是666-umask     目录的默认遮罩码是777-umask

umask命令

umask:查看umask值

umask #:设定umask值

 

install命令 复制文件和设置属性

单源和多源复制  

-d:创建空目录

-m:设定目标文件的权限,默认是755

-o:设定目标文件的属主

-g:设定目标文件的属组

 

mktemp命令 创建临时文件

-d:创建临时目录

-u:用于测试 dry run

 

 


Linux用户、用户管理的常见命令用法以及用户的权限管理