码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 用户、组管理

时间:2016-08-02 17:12:22      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:linux 用户 组管理

用户、组管理命令 整理

安全上下文

进程安全上下文

进程对文件访问权限应用模型

进程的属主与文件的属主是否相同,如果相同则运行属主权限

进程的属主与文件的属主不相同,对比属组权限是否相同,相同则应用属组权限

进程的属主既不是文件的属主也不是同一属组,则应用其他人权限

概念

用户

用户,计算机的使用者,每个使用者有一个id,但是计算机更容易识别数字,所以Linux有uid一说。为了方便人进行管理使用,引用了用户名,用户名就像人类的名字,uid就像身份证号。但是Linux不允许重名,即使uid不同也不行。但是不同用户名可以uid相同。

Linux内部进行名称解析:

    用户名<---->UID
    根据名称解析库进行  /etc/passwd

组:用户组,用户的容器,便于实现权限分配

新建用户时,系统自动创建于用户名同名的组,且组内只有一个用户(新建用户),叫做用户的私有组,也是用户的主组。

对于用户,有基本组(主组)和附加组的概念。

用户管理

1. 建立新用户

useradd 添加用户

useradd -D [options]
        -u,--uid            指定UID
        -g,--gid            指定基本组ID,此组需要事先存在
        -G,--groups         指明用户的附加组,多个附加组用逗号隔开
        -c,--comment        指明注释信息
        -s,--shell          指明用用户默认shell,可用shell在/etc/shells目录下
        -d,--home           指明用户的家目录位置,通过复制/etc/skel目录并重命名,如果之前存在家目录,则不会为用户复制环境配置文件。
                                父目录必须存在,子目录可以不存在
        -r,--system         创建系统用户,系统用户也需要密码。
        -o 不检查用户UID唯一性,用户UID可以重复
        -N 不建立主组,使用users作为主组。
        -m 创建用户家目录,如果不存在则创建家目录

        用户家目录的默认配置文件(隐藏文件)是从/etc/skel中复制过来并重命名的
        系统用户的家目录、邮箱是不会自动生成的

passwd 设置密码

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

    常用选项:
    -l:锁定指定用户
    -u:解锁指定用户
    -e:强制用户下次登录修改密码
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天开始警告
    -iinactivedays:非活动期限;
    --stdin:从标准输入接收用户密码;
    echo "PASSWORD" | passwd--stdinUSERNAME

2. 删除

userdel 删除用户

userdel[OPTION]... login
        -r: 删除用户家目录;

默认不删除用户的家目录和邮箱

3. 修改

usermod 修改用户各项信息配置

usermod [options] LOGIN
        -u,--uid                指定UID
        -g,--gid                指定基本组ID,此组需要事先存在
        -G,--groups         指明用户的附加组,多个附加组用逗号隔开,覆盖修改
        -a,append           只能与-d一起使用,为用户追加新的附加组。
        -c,--comment            指明注释信息
        -d,--home           指明用户的家目录位置,通过复制/etc/skel目录并重命名,如果之前存在家目录,则不会为用户复制环境配置文件。用户的原有家目录下的文件不会转移到新目录,要与-m一起使用
        -m,--move-home      只能与-d选项一起使用。表示更改并移动家目录。
        --l,--login NEW_NAME修改用户名
        -s,--shell          指明用用户默认shell,可用shell在/etc/shells目录下
        -L,--lock           锁定用户的密码,为用户密码前加上!号
        -U,--unlock         解除锁定用户,删除密码前的!号
        -e                  YYYY-MM-DD: 指明用户账号过期日期;
        -f                  INACTIVE: 设定非活动期限

    usermod -G "" USERNAME 删除用户的附加组
    修改用户id 组 附加组 家目录 登录shell 用户名

4. 查看

id 查看用户的uid、gid、附加组,用户名信息

id [OPTION]... [USERNAME]
    -u: UID
    -g: GID
    -G: Groups
    -n: Name

getent

getent passwd USERNAME  #显示用户passwd中的信息

5. 配置文件

/etc/passwd 用户信息 uid gid 附加组 登录shell 家目录..

/etc/group 组的信息,里面包含的用户..

/etc/shells 当前主机安装的shell

/etc/skel 建立新用户时,用的家目录的默认配置文件放在此目录下,复制到用户家目录

/etc/login.defs 新建用户的模板信息安全配置..

组管理

1. 建立新组

groupadd

groupadd[OPTION]... group_name
    -g GID: 指明GID号;[GID_MIN, GID_MAX]
    -r: 创建系统组;
        CentOS 6: ID<500
        CentOS 7: ID<1000

2. 删除

groupdel 删除组

groupdel GROUP

3. 修改

groupmod 修改编辑组

groupmod[OPTION]... group
    -n group_name: 新名字#给组更名
    -g GID: 新的GID;#更改组gid

4. 查看

groups 查看用户基本组内都有那些用户

print the groups a user is in #显示出用户在那些组内
groups [OPTION]... [USERNAME]...

getent 查看用户的group信息

getent group USERNAME #显示用户group文件中的(与用户名同名的组)组信息

groupmems 管理用户基本组的成员

groupmems[options] [action]
    options:
        -g, --group groupname更改为指定组(只有root)

    Actions:
        -a, --add username 指定用户加入组
        -d, --delete username 从组中删除用户
        -p, --purge 从组中清除所有成员
        -l, --list 显示组成员列表

5. 配置文件

/etc/group /etc/gshadow


用户组相关管理命令

1. 批量创建用户,修改密码,密码相关命令

newusers 批量创建用户

从文档读取内容批量创建用户格式如下

pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell

chpasswd 批量修改用户密码

chpasswd从标准输入读取用户名和密码对。来修改已经存在的用户的密码

用户名和密码的格式 用户名:密码
cat passwdlist | chpasswd

authconfig 修改密码加密方式

chage 修改用户密码策略

chage[OPTION]... LOGIN
    -d LAST_DAY
    -E, --expiredateEXPIRE_DATE
    -I, --inactive INACTIVE
    -m, --mindaysMIN_DAYS
    -M, --maxdaysMAX_DAYS
    -W, --warndaysWARN_DAYS
    –l,显示密码策略
下一次登录强制重设密码
    chage-d 0 tom
chage-m 0 –M 42 –W 14 –I 7 tom
chage-E 2016-09-10 tom

pwconv, pwunconv, grpconv, grpunconv 转换用户和组密码

    The pwconv command creates shadow from passwd and an optionally existing shadow.创建shadow文件,passwd中无密码
    The pwunconv command creates passwd from passwd and shadow and then removes shadow.删除shadow文件,密码存放于passwd文件中

    The grpconv command creates gshadow from group and an optionally existing gshadow. #不翻译了和pwconv类似
    The grpunconv command creates group from group and gshadow and then removes gshadow.#不翻译同上

    These four programs all operate on the normal and shadow password and group files: /etc/passwd, /etc/group, /etc/shadow, and /etc/gshadow.
    #以上操作涉及到文件。files: /etc/passwd, /etc/group, /etc/shadow, and /etc/gshadow

2. 修改用户信息

chfn 修改用户finger信息

修改用户finger信息

finger

finger用来显示用户名、用户全名、终端设备号和登录时间等信息
options用来控制finger的显示内容,user-list用来指定finger要显示的用户列表
finger可以在被地系统和远程系统上检索信息
finger [options] [user-list]
        -l 列出用户的详细信息
        -s 列出用户的简要信息

3. 检查用户、组配置信息

vipw、vigr

vipw 相当于 vi /etc/passwd 修改用户信息用户id组等用户信息
vigr 相当于 vi /etc/group 修改组相关信息
        参数都一样
        -g 显示或修改group文件
        -p 显示或修改passwd文件
        -s 显示或修改shadow/gshadow文件

pwck 用户密码文件完整性检查

检查用户配置完整性
pwck [options] [passwd [ shadow ]]

    例
        [root@yangyouwei ~]# pwck
        user ‘adm‘: directory ‘/var/adm‘ does not exist
        user ‘uucp‘: directory ‘/var/spool/uucp‘ does not exist
        user ‘gopher‘: directory ‘/var/gopher‘ does not exist

grpck 组文件完整性检查

检查组配置信息完整性
grpck [options] [group [ shadow ]]

4. 用户、组切换

su 切换用户

su[options...] [-] [user [args...]]
    切换用户的方式:
    suUserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
    su-UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
    root su至其他用户无须密码;非root用户切换时需要密码
    换个身份执行命令:

    su[-] UserName -c ‘COMMAND‘
    选项:-l --login:
    su-l UserName相当于su-UserName
    切换完成工作后一定要退回原来用户 exit

newgrp 切换用户组

newgrp 切换主组(临时切换)
    newgrp [-] [group]
            - 完全切换用户身份(环境变量)

chsh 修改登录shell

chsh [-s shell] [-l] [-u] [-v] [username]
        -s, --shell shell Specify your login shell.
        -l, --list-shells Print the list of shells listed in /etc/shells and exit.

        [root@yangyouwei ~]# chsh -l
        /bin/sh
        /bin/bash
        /sbin/nologin
        /bin/dash
        /bin/tcsh
        /bin/csh

        [root@yangyouwei ~]# cat /etc/shells 
        /bin/sh
        /bin/bash
        /sbin/nologin
        /bin/dash
        /bin/tcsh
        /bin/csh


Linux 用户、组管理

标签:linux 用户 组管理

原文地址:http://yangyouwei.blog.51cto.com/114816/1833577

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