linux用户及权限管理

【文件管理、管道、用户及组管理、用户及权限管理】\用户及组管理

用户与组管理

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

  1.用户账号的添加、删除与修改。

  2.用户口令的管理。

  3.用户组的管理。

  Linux用户分为两种,分别是管理员(UID:0)和普通用户(UID:1-65535),普通用户又分为系统用户与登录用户。

  :一个程序可以访问哪些内容取决于这个程序的发行者是哪一个的。

  linux组可分为管理员组(GID:0)与普通用户组(1-60000)

  :centos6版本与centos7版本的UID与GID略有不同。

  此外,用户组还可以划分为基本组(用户在创建时默认创建一个与其名字相同的基本组)与附加组(除了已有的基本组以外,还可以添加其他组,其他组就是此用户附加组)

  所以组名通用户名,且只包含一个用户就叫做私有组,而组内包含多个用户叫做公有组

Linux用户和组相关的配置文件

  用户和用户组相关的信息都存放在/etc/passwd,/etc/shadow,/etc/group以及/etc/gshadow文件下。下面分别介绍这些文件的具体内容。

  1./etc/passwd

  此文件下保存了用户及其属性信息。其中每条信息从左到右被冒号分割成了7个部分,username(用户名):x(密码占位符,真正的密码自然不能放在这里了,太不安全了):UID(用户ID):GID(用户组ID):存放用户的注释信息:用户家目录:用户默认使用的shell。

  2./etc/shadow

  此文件保存了用户密码及其相关属性信息,其中每条信息从左到右被冒号分割成9个部分,用户名:密码(被加密过的,密码中有“!”或者“*”用户已被禁用):最近一次修改密码的日期,自linux元年开始的天数(1970年1月1日开始):密码最短使用时间:密码最长使用时间:密码告警时间(在密码过期前n天进行告警,需要修改密码了):不活动时间(超出警告时间后m天仍可登录):失效时间(到达此时间,用户无法使用):保留位暂不使用。

  3./etc/group

  此文件保存了用户组及其属性信息,每一行被冒号从左至右分割成了4个部分,组名(创建一个用户就会创建一个同名的组):x组密码占位符(与用户密码一样也是存放在其他位置):GID:以逗号分隔的用户列表,以此组为附加组的用户的用户列表。

  4./etc/gshadow

  此文件保存了组密码及其相关属性信息,每一行被冒号从左至右分割成了4个部分,组名(创建一个用户就会创建一个同名的组):密文密码(为空时只有该组成员可获得权限,“!”与“*”则不需要密码可直接加入):用户组管理员(是逗号分隔的用户列表,用户组管理员可以修改密码和组成员,也很组里其他成员拥有相同的权限):成员(以此组为附加组的用户的用户列表,应该要和/etc/group下的用户列表一样)

 用户与组相关管理常用命令

   一、用户创建:useradd

  使用方法:useradd [options] login

  常用选项:

  -u:--uid UID:指定UID,定义在/etc/login.defs

  -g:--gid GROUP:指明用户基本组,可为组名也可以是GID

  -G: GROUP1[,GROUP2,...[,GROUPN]]]:指定用户所属的附加组,组事先存在

  -c:--comment COMMENT:用户注释信息

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

  -s:--shell SHELL:指定用户的默认shell,可用列表存放在/etc/shells下

  -r:创建系统用户。

  :默认值设定在/etc/default/useradd中。可用 useradd -D命令查看创建用户的默认配置

  二、创建组:groupadd

  使用方法:groupadd [option]...  group_name

  常用选项:

  -g GID:指明GID号

  -r:创建系统组

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

  使用方法:id [OPTION]... [USER]

  常用选项:

  -u: 仅显示有效的UID

  -g: 仅显示用户的基本组ID

  -G:仅显示用户所属的所有组的ID

   四、切换用户或以其他用户身份执行命令:su

  使用方法:su [options...] [-] [user [args...]]

  切换用户方式:

    非登录式切换,不会读取目的用户的配置文件进行初始化:su USERNAME

    登录式切换,会读取目的用户配置文件,完全切换:su - USERNAME或者su -l USERNAME

 

  换身份执行命令:

  su [-] username -c  'COMMADN'

  五、用户加密:passwd

  使用方法:passwd[options]username:修改指定用户密码,仅root用户有权限。

  常用选项:

  -l:锁定指定用户

  -u:解锁指定用户

  -n:mindays:指定最短使用期限

  -x:maxdays:最大使用期限

  -w:warndays:提前告警期限

  -i:inactivedays:非活动期限

  从标准输入接收用户密码:echo “password” | passwd --stdin username

  六、用户属性修改:usermod

  使用方法:usermod [options] LOGIN

  常用选项:

  -u,UID:修改用户的ID为新UID;
  -g, --gid GROUP:修改用户到新基本组;
  -G,  GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;若保留原有,则同时使用-a选项(append)
  -s,新的默认shell
  -c,  COMMENT:新的注释信息;
  -d,  HOME_DIR:新的用户家目录;用户原有的文件不会被转移至新家目录下;若要移动则使用-m选项。
  -l, login name:新的用户名;
  -L,lock:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
  -U, --unlock:解锁用户的密码;
  七、删除用户:userdel

  使用方式:userdel [options] LOGIN

  常用选项-r:删除用户时一并删除其家目录,默认不删除

  八、组属性修改:groupmod

  使用方式:groupmod [options] GROUP

  常用选项:

  -g GID:新的GID

  -n group_name:新组名

  九、组删除:groupdel

  使用方式:groupdel GROUP

  十、组密码:gpasswd

  使用方式:gpasswd [option] group

  常用选项:

  -a USER:将user添加至指定组

  -d USER:删除用户以当前组命名的附加组

  -A USER1,USER2,...:设置有管理权限的用户列表

  十一、修改用户属性:chage

  使用方式:chage [options] LOGIN

  常用选项:

  -d:修改最后一次修改密码的时间

  -E:修改用户失效时间

  -I:修改密码过期怒限时间

  -W:修改告警天数

  -m:修改密码最小使用天数

  -M:修改密码最长使用天数

通过文件的方式增加用户

  在linux中一切皆文件,那么我们操作文件就可以自己创建出一个用户来。当然实际操作时不会这样创建用户只是用来帮助理解。

  第一步,在/etc/passwd 中创建一个用户;

rose:x:1003:1003:/home/rose:/bin/bash

  第二步,在/etc/shadow增加密码等信息;

rose:!!:17321:0:99999:7:::

  第三步,在/etc/group 增加主组;

rose:x:1003:

  第四步,在/etc/gshadow 设置组密码信息;

rose:!::

  第五步,为用户设置邮箱;

[root@localhost /]# touch /var/spool/mail/rose

  第六步,设置家目录,并为家目录中增加一些隐藏文件

[root@localhost /]# mkdir /home/rose
[root@localhost /]# cp -r /etc/skel/.[!.]* /home/rose/
[root@localhost /]# id rose
uid=1003(rose) gid=1003(rose) groups=1003(rose)

文件的权限

  文件权限针对的对象是:

  owner:属主,u

  group:属组,g

  other:其他,o

  对于文件而言:

  文件可读(r):可以查看其内容。

  文件可写(w):可修改文件内容。

  文件可执行(x):可以把文件提请内核启动为一个进程。

  对于目录而言:

  目录可读(r):可以使用ls查看目录中文件列表

  目录可写(w):可在此目录中创建或删除文件

  目录可执行(x):可以使用ls-l查看目录中文件,可以cd进目录。

权限管理类命令

  一、修改文件权限(chmod)

  使用方法:

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

  可以直接将rwx直接赋值给相应的用户类型:u为属主,g为属组,o为其他用户,a为所有用户(同ugo=---)

  或者直接操作一类用户的一个权限位(u+x,o-r)

       2.chmod [OPTION]... OCTAL-MODE FILE...
  直接使用八进制来修改r=4,w=2,x=1.其中-R可递归修改权限。
       3.chmod [OPTION]... --reference=RFILE FILE..
  参考其他文件的权限
查看文件权限
[root@localhost /]# ll -lh /dj
total 16K
-rw-r--r-- 1 root root  51 Jun 14 10:36 hello_world.py
-rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
-rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
-rw-r--r-- 1 root root 359 Jul 23 02:48 test.py
修改权限
[root@localhost /]# chmod 775 /dj/hello_world.py 
[root@localhost /]# ll -lh /dj
total 16K
-rwxrwxr-x 1 root root  51 Jun 14 10:36 hello_world.py
-rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
-rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
-rw-r--r-- 1 root root 359 Jul 23 02:48 test.py
使用第三种方式
[root@localhost /]# chmod --reference=/dj/hello_world.py /dj/test.py 
[root@localhost /]# ll -lh /dj
total 16K
-rwxrwxr-x 1 root root  51 Jun 14 10:36 hello_world.py
-rw-r--r-- 1 root root  92 Jun 15 10:00 name_daxiaoxie.py
-rw-r--r-- 1 root root  84 Jun 15 09:44 name.py
-rwxrwxr-x 1 root root 359 Jul 23 02:48 test.py
[root@localhost /]# 

  二、修改文件的属组属主(仅使用root用户)

  1.修改属主(chown)

  使用方式:chown[OPTION]...[OWNER][:[GROUP]]FILE...或使用--referrence

  chown owner|owner:group|:group file (其中:可用.替换,并且可以使用-R递归更换)

  2.修改属组(chgrp)

  chgrp[option]...group file或--referrence方式

  3.文件或目录创建时的遮罩码:umask

  file:666-umask(若某类用户权限减得结果中存在x权限则将其权限+1)

  dir:777-umask

  umask:查看当前值

  umask#:设定值

posted @ 2017-07-23 20:53  JeffD  阅读(1173)  评论(0编辑  收藏  举报