用户组和权限管理

来源:互联网 发布:哪个软件小额贷款快 编辑:程序博客网 时间:2024/05/22 02:13

用户user

Linux用户:Username/UID

管理员:root, 0

普通用户:1-65535

系统用户:1-499, 1-999(CentOS7)

对守护进程获取资源进行权限分配

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

交互式登录


组group


Linux组:Groupname/GID

管理员组:root,0

普通组:

系统组:1-499, 1-999(CENTOS7)

普通组:500+, 1000+(CENTOS7)


Linux组的类别
用户的主要组(primary group)
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户,私有组
用户的附加组(supplementary group)
一个用户可以属于零个或多个辅助组


Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性


Passwd内容字段

daoke:x:500:500:daoke:/home/daoke:/bin/bash

 用户:密码:uid:gid:描述:家目录:shell类型


login name:登录用名(wang)
passwd:密码(x)
UID:用户身份编号(1000)
GID:登录默认所在组编号(1000)
GECOS:用户全名或注释
home directory:用户主目录(/home/wang)
shell:用户默认使用shell (/bin/bash)


Shadow 内容字段

 abcabc:xxx:17486:0:99999:7:::

ddkkddkk:!!:17485:10:20:7:5:17486:

用户名:密码:创建时的时间:最短有效时间:最大有效时间:提前几天提醒:宽限期:锁定时间


登录用名
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
密码再过几天可以被变更(0表示随时可被变更)
密码再过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从1970年1月1日算起,多少天后帐号失效


vipw 和 vigr 直接编辑passwd和shadow文件

pwck和grpck  检查passwd和shadow格式是否正确


用户与组常用创建和删除命令

useradd usermod userdel  用户创建、用户权限、用户删除

groupadd groupmod groupdel  组创建、组权限、组删除


/etc/default/useradd     创建帐号模板规则

# useradd defaults file
GROUP=100    默认users组
HOME=/home   默认用户的创建的家目录在哪
INACTIVE=-1    帐号创建后是否有宽限期修改密码
EXPIRE=          帐号的有效期
SHELL=/bin/bash  默认shell类型
SKEL=/etc/skel    默认的家目录配置文件
CREATE_MAIL_SPOOL=yes   是否创建邮箱


/etc/skel/*                     家目录产生的配置文件内容
/etc/login.defs              可修改的用户ID产生范围,家目录是否生成,创建文件默认权限,密钥加密类型
newusers passwd格式文件批量创建用户
chpasswd 批量修改用户口令


批量创建用户

首先要把需要建立的用户复制出来保存为userlist.lst格式必须保持一致如:

natasha:x:501:502::/home/natasha:/bin/bash
harry:x:502:503::/home/harry:/bin/bash
sarah:x:503:504::/home/sarah:/bin/nologin


在需要创建的服务器上 敲  newusers  userlist.lst  就可导入到系统


批量创建口令密码

把用户和密码格式保存为文件pass.lst

natasha:centos

harry:centos

sarah:centos

在需要创建的服务器上 敲  cat pass.lst | chpasswd   就可导入到系统


如何修改uaeradd创建用户时的默认规则

默认值设定:/etc/default/useradd文件中
显示或更改默认设置
useradd-D      显示当前模板
useradd–D -s SHELL      修改创建用户时的shell类型
useradd–D –b BASE_DIR   修改创建用户时所产生的家目录
useradd–D –g GROUP      修改创建用户时加入到的组


pwunconv  将密码信息转移到passwd

pwconv   取消密码信息恢复到shadow


建立用户

useradd[options] LOGIN
-u UID
-o 配合-u 选项,不检查UID的唯一性
-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
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户

一般创建模式  useradd -r -m -d /home/daoke -s /bin/nologin daoke

id daoke  查看用户信息

uid=500(daoke) gid=500(daoke)groups=500(daoke)


getent passwd daoke   查看用户详细信息

daoke:x:500:500:daoke:/home/daoke:/bin/bash



建立组

usermod[OPTION] login
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
-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: 设定非活动期限


usermod -g admins daoke  将daoke的主组改为admins

usermod -G xiaoming daoke  将xiaoming成为daoke的附加组 

特别注意如果添加多个附加组 一定要用 usermod -aG aaa,bbb,ccc  daoke

 选项添加

如需要删除附加组  使用 usermod -G " " daoke  或者 

                                       usermod -G admins daoke  或者

                                       gpasswd -d daoke admins 


如需迁移家目录到/app/sdaoke   usermod -d /app/sdaoke-m daoke   迁移家目录时一定要加-m选项连同数据一块迁移


删除用户及家目录   userdel -r daoke  连同mail下的目录 一同删除



su 切换账户

su daoke  切换的时候是在root的家目录除非用  su - daoke 才会进到daoke的家目录

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



查看用户相关ID信息

id [OPTION]... [USER]
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用


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


修改用户密码策略

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




chfn指定个人信息

-f<真实姓名>或--full-name<真实姓名>:设置真实姓名; 

-h<家中电话>或--home-phone<家中电话>:设置家中的电话号码; 

-o<办公地址>或--office<办公地址>:设置办公室的地址; 

-p<办公电话>或--office-phone<办公电话>:设置办公室的电话号码; 

-u或--help:在线帮助; 

-v或-version:显示版本信息。

chsh指定shell

-s或--shell:更改系统预设的shell环境。; 

-l或--list-shells:列出目前系统可用的shell清单; 

-u或--help:在线帮助; 

-v或-version:显示版本信息。


finger

查看用户的描述信息等


创建组

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


groupadd daoke

groupadd -r -g 300 daoke


修改和删除组

组属性修改:groupmod
groupmod[OPTION]... group
-n group_name: 新名字
-g GID: 新的GID

groupmod -n daoke daoke111

groupmod -n daoke -g 400

组删除:groupdel
groupdelGROUP


groupdel daoke


更改组密码

组密码:gpasswd
gpasswd[OPTION] GROUP
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2,... 设置有管理权限的用户列表

gpasswd -a  daoke admins   将daoke添加到admins组

gpasswd -d  daoke admins   将daoke从admins组里删除


newgrp命令:临时切换主组
如果用户本不属于此组,则需要组密码



更改和查看组成员

groupmems[options] [action]
options:
-g, --group groupname更改为指定组(只有root)
Actions:
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表
groups [OPTION].[USERNAME]... 查看用户所属组列表


groupmems -l -g admins   列出当前admins组的所有成员有哪些

groupmems -p -g admins  清空当前admins组里的所有成员,清的是辅助组成员


groups daoke   查看用户是属于什么组

groupmems -l -g admins  查看admins组里都有谁





原创粉丝点击