Linux之小基础-用户和权限管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之小基础-用户和权限管理相关的知识,希望对你有一定的参考价值。


一、何为Linux用户:

     Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也能帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和用户口令。用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录。


二、用户的分类:

  Unix/Linux系统中有两类用户超级用户(root)和一般用户。超级用户有着至高无上的权力,可做任何事情;一般用户只有在给定权限范围内进行工作,不得越权行事。


三、用户标识

    用户一般用 UserID,即 UID表示。UID用16bits的二进制数字表示,最大数值为65535;:用户名、UID及其它属性信息解析库存放在 /etc/passwd目录下 

          技术分享技术分享         

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

用户组:用户组是指多个用户的集合。用户组的属性信息解析库存放在 /etc/group 目录下。

技术分享以下为各用户在系统中UID大小表示:

       管理员:0

       一般用户:分为系统用户和普通用户

         系统用户:

           CentOS 5, 6: 1-499

           CentOS 7: 1-999

         普通用户:

           CentOS 5,6: 500+

          CentOS 7: 1000+


四、用户和用户组的管理


     用户:useradd, usermod, userdel

组:groupadd,  groupmod, groupdel

认证:passwd

  

   

 useradd命令:添加用户

  useradd  [选项]  登录名

-c, --comment COMMENT:注释信息,一般为Full Name;

-d, --home  /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告,不会复制skel相关的文件给用户;

     -g, --gid GROUP:用户的基本组组名或GID;

-G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格;

-m, --create-home:强制创建家目录; 

-M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes;

-r, --system:创建一个系统账户

-s, --shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell;

-u, --uid UID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。

 

      技术分享


useradd -D:显示创建用户时的默认设置;

useradd -D  选项:设置某默认选项;

-e, --expiredate  EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定

-f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。

    

     useradd -D:显示创建用户时的默认设置;

    技术分享

useradd -D  选项:设置某默认选项;




   

 usermod命令:修改账号信息

 -c, --comment  COMMENT

 -d, --home  HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中;

 -g, --gid GROUP

 -G, --groups  GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组;

 -l, --login  NEW_LOGIN:修改当前用户的用户名;

 -s, --shell  SHELL

 -u, --uid  UID

-L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!”

-U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!”







userdel命令:删除用户账号

  userdel [选项]  登录名

  -r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除  

  技术分享    






组管理命令


   groupadd命令:添加组

groupadd  [选项]  group

       -g  GID:指明GID;

  -r, --system:系统组;

  


   groupmod命令:修改组信息

groupmod [选项] GROUP

  -g  GID 

  -n NEW_NAME:修改组名;

   groupdel命令:删除组

groupdel [选项] GROUP


密码管理

 passwd命令:密码管理命令

 passwd   [-l]  [-u  [-f]]  [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username]

 (1) passwd:修改自己的密码;

 (2) passwd  username:修改其它用户的密码,仅root有此权限;

技术分享

此时会提示你输入新密码,设定密码要求如下:

 (1) 不能少于8个字符;

 (2) 不能使用与过去的密码太相似的密码;

 (3) 应该使用四类字符中的至少三类;


     其中选项解释:

  -l:锁定密码

  -u:解锁解密

  -d:清除密码

  --stdin:从标准输入接收密码;

echo "PASSWORD" | passwd  --stdin  USERNAME


     技术分享

切换用户:

  su命令:switch user

切换用户时:

 (1) 不读取目标用户的配置文件(非登录式切换,半切换);此时还在root用户的家目录下。

su  USERNAME

     技术分享

 (2) 读取目标用户的配置文件(登录式切换,完全切换);

su  -l  USERNAME

su  -  USERNAME

    技术分享

   

    注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码;




 gpasswd命令:为组添加密码

组密码文件:/etc/gshadow

gpasswd [选项] group

-a USERNAME:把用户添加至组中;

-d USERNAME:从此组中移除此用户;

newgrp命令:登录到一个新组

chage命令:修改用户账号的各种期限;


五、用户和组的权限管理



文件系统文件权限:

    三类用户:

 属主:owner, u

 属组:group, g

 其它:other, o

      

(其中a表示所有用户)

权限:

r: readable,可读

w: writable, 可写

x:excutable, 可执行 

  权限管理:

文件:

r:可获取文件的数据;

w:可修改文件的数据;

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

目录:

r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中;

w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件;

x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中;

          技术分享

rwxrwxrwx:

owner: rwx 

group: rwx 

other: rwx 

权限组合机制:

以owner为例:


                          系统   对应二进制   八进制

--- 0000

--x0011

-w-0102

-wx0113

r--1004

r-x1015

rw-1106

rwx 1117


权限管理:

ownership: 仅管理员有权限 

改属主:chown

改属组:chgrp

mode(permission):仅属主

chmod

chmod命令:

作用:change file mode bits

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

chmod [OPTION]... --reference=RFILE FILE...

   (1) chmod [OPTION]... MODE[,MODE]... FILE...

 MODE:

1>赋权表示法:直接操作一类用户的所有权限位rwx;

   u=rw 可读可写不可执行,不写为没有权限。

   g=

        o=

   a=

两类用户权限相同:ug=, go=

 技术分享

不同类的用户权限不同:u=,g=,o=

2>授权表示法:操作一类用户一位或多位权限;

u+, u-

g+, g-

o+, o-

a+, a-

两类用户权限收授机制相同:ug+, ug-, ...

不同类的用户权限不同:u+,g+,o+

此外,也可以用八进制表示法修改权限,如:

  ]# chmod 700 fstab

  ]# ls -l fstab

  ]# -rwx------ 1 root root 923 Mar 14 13:20 fstab

此处需要注意77是077,而不是770。


(2) chmod [OPTION]... OCTAL-MODE FILE...

(3) chmod [OPTION]... --reference=RFILE FILE...

--reference=RFILE:RFILE表示参考其权限模型;

常用选项:

-R, --recursive:递归修改;

chown命令:

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

chown [OPTION]... --reference=RFILE  FILE...

常用选项:

-R, --recursive:递归修改;(目录和其他文件也会变)


chgrp命令:

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...



umask:显示或设定文件模式掩码

    技术分享 

创建文件:

666-umask   即此时创建文件时,对应权限码为666-022=644  -rw-r--r--

目录:

777-umask  即此时创建目录文件时,对应权限码为777-022=755  -rwxr-xr-x

  注意:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时,则需要手动加1;


     显示:

umask

     设定:

umask MASK

注意:此设定仅对当前shell进程有效;



   






以上是关于Linux之小基础-用户和权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Linux权限管理总结--基础权限

Linux基础 08Linux用户权限相关命令

Python基础之Linux基础:用户权限相关命令

Linux基础-管理用户和文件权限

《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理