码迷,mamicode.com
首页 > 其他好文 > 详细

用户、组与权限

时间:2016-08-02 11:49:43      阅读:439      评论:0      收藏:0      [点我收藏+]

标签:用户 组 权限

一. 用户、组

    用户:资源获取标识符,资源分配,安全权限模型的核心要素之一

    密码:来实现用户认证的

       注意: linux中依据用户id 来识别用户,而不是用户名

    (windows中组名和用户名不可以一样)

    (linux 中,组名和用户名可以一样,ID可以可以一样,两者是不同的)

   Linux安全上下文

    运行中的程序:进程 (process)

    以进程发起者的身份运行(而不是进程所有者):

    eg:  root: /bin/cat

    mage: /bin/cat

    进程所能够访问资源的权限取决于进程的运行者的身份

   Linux用户类型: Username/UID

    管理员: root, 0

    普通用户: 1-65535

    系统用户: 1-499( CENTOS6) , 1-999 (centos7)(家目录、邮箱不会自动创建)

    (对守护进程获取资源进行权限分配, nologin)

    登录用户:500( CENTOS6) +, 1000+

    使用交互式登录

   Linux组: Groupname/GID

    一种容器:能够容纳很多用户的容器,可以分配权限 组(group),角色(role)

    管理员组: root, 0

    普通组:

    系统组: 1-499(Centos6), 1-999(centos7)

    普通组: 500+(6), 1000+(7)

   Linux组的类别:

    用户的主要组(主组):

    用户必须属于一个且只有一个主组

    组名同用户名,且仅包含一个用户:私有组

    用户的附加组(辅助组):

    一个用户可以属于零个或多个辅助组

    ( 注意: 一个账号可以属于多个组,但是只能有一个主组primary group,

                         其他组为辅助组secondary group)

二.Linux用户和组的主要配置文件:

    /etc/passwd:用户及其属性信息(名称、 UID、主组ID等)

                        (普通用户无权限访问和修改)

    /etc/group:组及其属性信息

    /etc/shadow:用户密码及其相关属性

      (当用于没有设置密码时,密码处会有两个!!,表示不允许登录,如果删除!!,则无密          码直接可以登录,此处是一个安全隐患,5以后的版本已经无法操作)

    /etc/gshadow:组密码及其相关属性


   /etc/passwd文件格式详解:

    格式(实例):

    natasha:x:504:505::/home/natasha:/bin/bash

    login name:登录用名( natasha)

    passwd:密码 (x)

    UID:用户身份编号 (504)

    GID:登录默认所在组编号 (504)

    GECOS:用户全名或注释 (此处为空白)

    home directory:用户主目录 (/home/natasha)

    shell:用户默认使用shell (/bin/bash)

    /etc/shadow文件格式详解:

     格式:lin:$6$gHS24uAlG8TAHbeK$.7EMOA9iS19/CshbmHjeZwlAiCbjKmP8z9VTKbAqWZDihACn

    sG7lbFp6LVXDlgvk/tDbIhx9uE7kaVtoVqDc9.:17014:0:99999:7:::

    登录用名:lin

    用户密码:一般用sha512加密

        第一个$后内容代表加密算法

        第二个$之后的为杂质

        第三个$后的内容为加密后的密码

    从1970年1月1日起到密码最近一次被更改的时间

    密码再过几天可以被变更( 0表示随时可被变更)

    密码再过几天必须被变更( 99999表示永不过期)

    密码过期前几天系统提醒用户(默认为一周)

    密码过期几天后帐号会被锁定

    从1970年1月1日算起,多少天后帐号失效。

    /etc/group 文件格式详解:

    格式:lin:x:500:

    群组名称:就是群组名称

    群组密码:通常不需要设定,密码是被记录在/etc/gshadow

    GID:就是群组的 ID

    以当前组为附加组的用户列表(分隔符为逗号)

 /etc/gshadow 文件格式详解:

    格式:  admins:!::natasha

    群组名称:就是群组名称

    群组密码:!  (无密码)

    组管理员列表:组管理员的列表,更改组密码和成员

    以当前组为附加组的用户列表: (分隔符为逗号)

    注意:以上四个文件,介意使用一下命令来修改内容,在退出时可以检测语法错误

     vipw = vi /etc/passwd

     vigrp = vi /etc/group

    pwck/grpck  :用于检测passwd、group两个文件是否有错误


三.用户、组管理命令

1.用户管理

    用户添加: useradd [options] LOGIN(仅支持操作单个用户,不可同时操作多个)

    -u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs

    -o 配合-u 选项,不检查UID的唯一性(可以强行指定ID,即使已经ID相同的用户)

    -g GID:指明用户所属基本组,可为组名,也可以GID

    -c "COMMENT":用户的注释信息

    -d HOME_DIR: 以指定的路径(不存在)为家目录

    -s SHELL: 指明用户的默认shell程序

    可用列表在/etc/shells文件中

    -G GROUP1[,GROUP2,...]:为用户指明附加组,组必须事先存

    在

    -N 不创建私用组做主组,使用users组做主组

    -r: 创建系统用户 CentOS 6: ID<500, CentOS 7: ID<1000

   useradd 默认值设定: /etc/default/useradd文件中

    显示或更改默认设置:

    useradd -D

    useradd –D -s SHEL


  /etc/skel/ 详解:

   skel:skeleton(框架),用于初始化新用户的根目录,即每当一个新用户被添加,才目录下的全

     部文件会原封不动复制到新用户的家目录下

    注:

    1.如果在新建用户时,没有自动建立用户根目录,则无法调用到此框架目录。

    2.如果不想以默认的/etc/skel目录作为框架目录,可以在运行useradd命令时指定新的框架目

       录。例如:

       sudo useradd -d /home/chen -m -k /etc/my_skel chen

        上述命令将新建用户chen,设置用户根目录为/home/chen,并且此目录会自动建立;同时

        指定框架目录为/etc/my_skel。

    3.如果不想在每次新建用户时,都重新指定新的框架目录,可以通过改/etc/default/useradd

       配置文件来改变默认的框架目录,方法如下:

    查找SKEL变量的定义,如果此变量的定义已被注释掉,可以取消注释,然后修改其值:

    SKEL=/etc/my_skel


  /etc/login.defs

    login.defs是设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大

            长度约束等内容。该文件里的配置对root用户无效。如果/etc/shadow文件里有相同的选项,

           则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs #

    主要内容解释:

    MAIL_DIR/var/spool/mail注:创建用户时,要在目录/var/spool/mail中创建一个用户mail

            文件;

    PASS_MAX_DAYS99999注:用户的密码不过期最多的天数;

    PASS_MIN_DAYS0注:密码修改之间最小的天数;

    PASS_MIN_LEN5注:密码最小长度;

    PASS_WARN_AGE7注:密码过期警告时间

    UID_MIN500注:UID 最小值规定

    UID_MAX60000注:UID最大值规定

    CREATE_HOMEyes注:是否创用户家目录,要求创建;

   批量创建用户 newusers passwd(格式文件)    

    使用方法:1.先创建格式与/etc/passwd文件一直的文件,需要添加的用户及其信息均填入其中

    2. newusers 格式文件    即可

    注意:此方法生成的用户,需要手动建立对应的家目录

    方法: 复制某用户家目录下文件至相应新建家目录即可

   批量修改用户口令 chpasswd   

    (用法与上述一致,文件格式改为/etc/passwd中用户、密码这两部分即可,后面的内容不需

       要加入)

 

   用户属性修改  usermod [OPTION] login (只能操作一个用户)

    -u UID: 新UID

    -g GID: 新基本组

    -G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加

    组将会被覆盖;若保留原有,则要同时使用-a选项,表示append;

    -s SHELL:新的默认SHELL;

    -c ‘COMMENT‘:新的注释信息;

    -d HOME: 新家目录不会自动创建,原家目录中的文件不会同时移

    动至新的家目录;若要创建新家目录并移动原家数据,同时使用-m选项

    -l login_name: 新的名字;

    -L: lock指定用户,在/etc/shadow 密码栏的增加 !

    -U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉

    -e  YYYY-MM-DD: 指明用户账号过期日期;

    -f   INACTIVE: 设定非活动期限;

   删除用户 userdel [OPTION]... login(单用户操作)

      -r: 删除用户家目录

   用户ID信息查询 id [OPTION]... [USER]

    -u: UID

    -g: GID

    -G: Groups

    -n: Name

    用户切换

    su [options...] [-] [user [args...]]

    切换用户的方式:

    su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录

    su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换

    root su至其他用户无须密码;非root用户切换时需要密码

    换个身份执行命令:

    su [-] UserName -c ‘COMMAND‘

    选项: -l --login:

    su -l UserName 相当于 su - UserName


用户密码修改

    passwd [OPTIONS] UserName: 修改指定用户的密码,仅root用户权限

    passwd: 修改自己的密码;

    常用选项:

    -l:锁定指定用户

    -u:解锁指定用户

    -e:强制用户下次登录修改密码

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

    -x maxdays:最大使用期限

    -w warndays:提前多少天开始警告

    -i inactivedays:非活动期限;

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

    echo "PASSWORD" | passwd --stdin USERNAME

用户密码策略修改

    chage [OPTION]... LOGIN

    -d LAST_DAY

    -E, --expiredate EXPIRE_DATE

    -I, --inactive INACTIVE

    -m, --mindays MIN_DAYS

    -M, --maxdays MAX_DAYS

    -W, --warndays WARN_DAYS

    –l,显示密码策略

    下一次登录强制重设密码

    chage -d 0 tom

    chage -m 0 –M 42 –W 14 –I 7 tom

    chage -E 2016-09-10 tom

   其他快捷命令:

    chfn 指定个人信息

    chsh 指定shell

    finge 需手动添加的命令,默认下未安装,可以查看用户详情

 

2.组创建组 groupadd [OPTION]... group_name

    -g GID: 指明GID号; [GID_MIN, GID_MAX]

    -r: 创建系统组;

    CentOS 6: ID<500

    CentOS 7: ID<1000

 修改、删除组

   组属性修改: groupmod

    groupmod [OPTION]... group

    -n group_name: 新名字

    -g GID: 新的GID;

  组删除: groupdel

     groupdel GROUP

  组密码修改

    组密码: gpasswd

    gpasswd [OPTION] GROUP

    -a user: 将user添加至指定组中;

    -d user: 从指定组中移除用户user

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

   newgrp命令:临时切换基本组;

    如果用户本不属于此组,则需要组密码

  修改、查看组成员

   groupmems [options] [action]

    options:

    -g, --group groupname 更改为指定组 (只有root)

    Actions:

    -a, --add username 指定用户加入组

    -d, --delete username 从组中删除用户

    -p, --purge 从组中清除所有成员

    -l, --list 显示组成员列表

   groups [OPTION].[USERNAME]... 查看用户所属组列表


用户、组与权限

标签:用户 组 权限

原文地址:http://195175108.blog.51cto.com/10167819/1833348

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!