用户和权限管理

                用户、组是计算机实现资源分配和安全的一种机制。


组管理:

添加组:groupadd  [选项]  group       

-g  GID:指明GID;

-r, --system:系统组;



修改组信息:groupmod [选项] GROUP        

-g  GID 

-n NEW_NAME:修改组名;

       组删除:groupdel [选项] GROUP

组解析库文件:/etc/group

GRPNAME:x:GID:user1, user2, ...

组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔

gpasswd命令:为组添加密码   组密码文件:/etc/gshadow



组中用户管理:gpasswd [选项] group    

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

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

newgrp命令:登录到一个新组






用户管理

    添加用户: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 最小值。

注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中;







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

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

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

为用户提供默认配置的配置文件:/etc/login.defs, /etc/default/useradd






修改用户信息: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 [选项]  登录名

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





passwd命令:密码管理命令

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

选项:

-l:锁定密码    -e DATE:过期期限      -x DATE:密码的最长使用期限

-u:解锁解密    -i DATE:非活动期限     -w DATE:警告期限

-d:清除密码    -n DATE:密码的最短使用期限 --stdin:标准输入

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

密码存放位置:/etc/shadow   

登录名:密码:最近一次的修改时间:密码的最短使用期限:密码最长使用期限:提前警告的天数:非活动期限:账号的禁用日期:保留字段





权限管理

进程安全上下文:

进程:运行一个程序文件而产生,通常由一个用户发起;进程则以发起者的身份运行;

判断进程的发起者是否与文件属主相同,如果是,则以属主的身份来访问,从而应用属主权限;否则

判断进程的发起者是否属于文件的属组,如果是,则应用属组权限;否则应用“其它”权限。


文件系统文件权限有三类用户owner、group、other,他们分别有r(读)、w(写)、x(执行)可以指派

权限表示:      8进制

owner: rwx     4(r) 2(w) 1(x)   例如:rwxr-xr-x:755

group: rwx 

other: rwx 




chmod命令:作用:change file mode bits

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

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

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

1、u=    g=     o=    a=


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

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

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


3、u+, u-    g+, g-    o+, o-   a+, a-

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


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

--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:显示或设定文件模式掩码  永久生效在/etc/bashrc 中修改

文件:666-umask

目录:777-umask

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

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