设为首页 收藏本站
查看: 458|回复: 0

[经验分享] Linux用户和组管理

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-27 08:28:13 | 显示全部楼层 |阅读模式
用户、组的相关配置文件:
在Linux系统中,用户账号信息、用户密码、组账号信息、组密码都保存在不同的配置文件中
/etc/passwd  文件的格式,每行包含的信息:
account:password:UID:GID:GECOS:directory:shell
用户名:密码占位符:UID:GUID(基本组ID):用户备注信息(多个以,隔开):家目录:默认shell
/etc/shadow文件的格式,每行包含的信息:
UserName:加密的密码:最近一次密码修改时间:最短使用期限:最长使用期限:警告区间:非活动区间:帐号的过期期限:预留段
/etc/group文件的格式,每行包含的信息:
group_name:passwd:GID:user_list
组名:密码占位符:GID:组内包括的用户
/etc/gshadow
组名:组密码:组管理员:组内成员
★用户的ID及组ID范围是0-65535
管理员:0
普通用户:1-60000 (一般情况下都不会使用60000以上的ID号)
系统用户:
CentOS6: 1-499
CentOS7: 1-999
登录用户:
CentOS6: 500+
CentOS7: 1000+
用户管理、组管理的相关命令:
useradd、usermod、id、passwd、userdel、chsh, chfn、chage、
groupadd、groupmod、groupdel、gpasswd、newgrp、su
<<========================================【useradd】========================================>>
useradd命令
功能:
创建用户
格式:
useradd[options] LOGIN
useradd-D [options]  指定创建用户的默认选项
常用选项:
-r: 创建系统用户,(默认不创建家目录)
-u UID: 指定UID
-g GID: 指定用户所属的基本组,(该组必须事先存在)
-c 'comment': 指定用户注释信息
-d /PATH/TO/SOMEWHERE: 指定用户的主目录路径,(此目录不能事先存在)
-s SHELL: 设定用户的默认shell
系统支持的shell列表:/etc/shells
-G GID: 指定用户所属的附加组
-M:不为用户创建家目录
-m或--create-home:为用户创建家目录
★创建的用户的时候默认会创建用户家目录,除非加了-M选项不为用户创建家目录
-m选项一般是在创建系统用户要又要为其创建家目录时使用。后面无需指定路径。
实例:
//创建一个用户yao,指定其UID号为1001,隶属与manager组,家目录路径为/home/manager/yao
[iyunv@CentOS-6~]# useradd -u 1001 -g manager -d /home/manager/yao  yao
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# id yao
uid=1001(yao)gid=500(manager) groups=500(manager)
[iyunv@CentOS-6~]#
yao:x:1001:500::/home/manager/yao:/bin/bash
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# tree /home
/home
└── manager
    └── yao
2directories, 0 files
<<========================================【usermod】========================================>>
usermod命令
功能:
修改用户账号属性信息
格式:
usermod[options] LOGIN
常用选项:
-u UID 修改用户UID
-g GID 修改用户基本组
-G GID[,GID,...]修改用户所属的附加组;
-a: 追加附加组,与-G同时使用
-c 'COMMENT'  修改用户注释信息
-d HOME: 修改用户的家目录为新位置时,用户原来的文件不会被移动
-m 修改用户家目录时同时迁移期家目录内文件与-d同时使用
-s: 修改默认shell
-l: 锁定用户
-U: 解除锁定
实例:
//修改UID为500,添加附加组sales,修改主目录为/home/yao,同时转移主目录文件,并添加注释信息
[iyunv@CentOS-6~]# usermod -u 500 -a -G sales -c 'Mr.yao' -m -d /home/yao yao
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# tail -1 /etc/passwd
yao:x:500:500:Mr.yao:/home/yao:/bin/bash
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# id yao
uid=500(yao)gid=500(manager) groups=500(manager),501(sales)
[iyunv@CentOS-6~]#
<<========================================【id】========================================>>
id命令
功能:
显示真实有效的用户ID(UID)和组ID(GID)
格式:
id[OPTION]... [USERNAME]
常用选项:
-u 显示用户UID
-g 显示用户基本组ID
-G 显示用户所隶属的所有组的ID
实例:
//如果不加任何选项,则显示用户名、UID、组名、组ID等所有信息
[iyunv@CentOS-6~]# id yao
uid=500(yao)gid=500(manager) groups=500(manager),501(sales)
[iyunv@CentOS-6~]# id -u yao
500
[iyunv@CentOS-6~]# id -g yao
500
[iyunv@CentOS-6~]# id -G yao
500501
[iyunv@CentOS-6~]#
<<========================================【passwd】========================================>>
passwd命令
功能:
给用户设定或修改密码
格式:
passwd [-k]  [-l] [-u [-f]] [-d] [-e] [-nmindays] [-x maxdays] [-w warn-
       days] [-i inactivedays] [-S] [--stdin][username]
常用选项:
-d:  删除用户密码
-e:  让用户的密码过期,强制下次登录式修改
-l:  锁定用户登录
-u:  解除用户锁定
如果直接键入passwd则默认为自己修改密码,passwd用户名 则是管理员为某用户修改密码
--stdin 从标准输入接收用户密码(使用脚本为用户设置密码时常用)
实例:
//为用户yao修改密码,使用管道送给passwd从标准输入接收。
[iyunv@CentOS-6~]# echo 'yao3800' | passwd  --stdin  yao
Changingpassword for user yao.
passwd:all authentication tokens updated successfully.
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]#
<<========================================【userdel】========================================>>
userdel命令
功能:
删除用户
格式:
userdel[options] LOGIN
常用选项:
-r:  删除用户时连同用户的主目录一起删除
-f:  强制删除,即使该用户已登录系统
实例:
//加-r选项,删除用户时同时删除其家目录
[iyunv@CentOS-6~]# tail -n 1 /etc/passwd
yao:x:500:500::/home/userhome:/bin/bash
[iyunv@CentOS-6~]# ll /home
total8
drwxr-xr-x.2 root root 4096 Aug 26 20:35 manager
drwx------.3 yao  yao  4096 Aug 27 00:06 userhome
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# userdel -r yao
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# tail -n 1 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# ll /home
total4
drwxr-xr-x.2 root root 4096 Aug 26 20:35 manager
[iyunv@CentOS-6~]#
<<========================================【chsh】========================================>>
chsh命令
功能:
更换登录系统时使用的shell。
若不指定任何参数与用户名称,则chsh会以应答的方式进行设置。
格式:
chsh[Option] [username]
常用选项:
-s: 指定用户shell
-l: 列出系统中的shell
实例:
//修改用户的默认shell为/sbin/nologin,禁止用户登录系统
[iyunv@CentOS-6~]# clear
[iyunv@CentOS-6~]# tail -1 /etc/passwd
yao:x:500:500::/home/yao:/bin/bash
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# chsh -s /sbin/nologin yao
Changingshell for yao.
Shellchanged.
[iyunv@CentOS-6~]#
<<========================================【chfn】========================================>>
chfn命令
修改用户的注释信息
常用选项:
-f, --full-name full-name
      用户全名
-o, --office office
      办公室电话
-p, --office-phone office-phone
       办公电话
-h, --home-phone home-phone
     家庭电话
实例:
//修改用户的详细注释信息
Changingfinger information for yao.
Name[]: Beckham   
Office[]: 888
OfficePhone []: 688
HomePhone []: 13800138000
Fingerinformation changed.
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# tail -1 /etc/passwd
yao:x:500:500:Beckham,888,688,13800138000:/home/yao:/sbin/nologin
//使用finger命令查看用户的详细注释信息
[iyunv@CentOS-6~]# finger yao
Login:yao                                   Name:Beckham
Directory:/home/yao                       Shell: /sbin/nologin
Office:888,688                        HomePhone: +1-380-013-8000
Neverlogged in.
Nomail.
NoPlan.
[iyunv@CentOS-6~]#
★此命令的作用不仅限于查看用户的基本信息,还能查看用户是有哪个终端登录的
<<========================================【chage】========================================>>
chage命令
功能:
修改用户帐号和密码的有效期限
格式:
chage[options] [LOGIN]
常用选项:
-m: 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M: 密码保持有效的最大天数。
-W: 用户密码到期前,提前收到警告信息的天数。
-E: 帐号到期的日期。过了这天,此帐号将不可用。(常用于设置临时账户)
-d: 用户上一次更改密码的日期,可设置日期格式:YYYY-MM-DD,
如果设置为0,则用户下次登录就要修改密码
-I: 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l: 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
实例:
//先使用chage-l 列出用户yao的密码相关信息
[iyunv@CentOS-6~]# chage -l yao
Last passwordchange                                          : 0
Passwordexpires                                                  : never
Passwordinactive                                                : never
Accountexpires                                              : never
Minimumnumber of days between passwordchange                :0
Maximumnumber of days between passwordchange                :99999
Numberof days of warning before passwordexpires                  : 7
//修改用户的密码最小使用时间为10天,最长使用时间为30天,上次修改密码时间为2015年8月25日
在密码期满前7天警告用户修改密码,如果用户密码期满后仍没修改密码的话3天后账号将停用。
[iyunv@CentOS-6~]# chage -d 2015-08-25 -M 30 -W 7 -m 10 -I 3 yao
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# chage -l yao
Lastpasswordchange                                              : Aug 25, 2015
Passwordexpires                                                    : Sep 24, 2015
Passwordinactive                                                  : Sep 27, 2015
Accountexpires                                               : never
Minimumnumber of days between passwordchange                 :10
Maximumnumber of days between passwordchange                 :30
Numberof days of warning before passwordexpires                    : 7
[iyunv@CentOS-6~]#
<<========================================【groupadd】========================================>>
groupadd命令
功能:
添加用户组
格式:
groupadd[options] group
常用选项:
-g:指定新建工作组的id;
-r:创建系统工作组。
实例:
//添加一个名为mysql的系统用户组
[iyunv@CentOS-6~]# groupadd -r mysql
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# tail -n 5 /etc/group
oprofile:x:16:
tcpdump:x:72:
slocate:x:21:
yao:x:500:
mysql:x:499:
[iyunv@CentOS-6~]#
<<========================================【groupmod】========================================>>
groupmod命令
功能:
修改用户组ID或组名称
格式:
groupmod[options] GROUP
常用选项:
-g  修改用户组ID
-n  修改用户组名称
实例:
//修改系统用户组mysql的组名为Oracle,组ID为400
[iyunv@CentOS-6~]# tail -1 /etc/group
mysql:x:499:
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# groupmod -g 400 -n Oracle mysql
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# tail -1 /etc/group
Oracle:x:400:
[iyunv@CentOS-6~]#
<<========================================【gpasswd】========================================>>
gpasswd命令
功能:
修改用户组内成员、管理员等,不加任何选项时则为group设置密码。
格式:
gpasswd[option] group
常用选项:
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;

-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

实例:
//为系统用户组Oracle添加密码,为Oracle
[iyunv@CentOS-6~]# gpasswd Oracle
Changingthe password for group Oracle
NewPassword: oracle
Re-enternew password: oracle
[iyunv@CentOS-6~]#
//把用户yao加进Oracle系统用户组
[iyunv@CentOS-6~]# gpasswd -a yao Oracle
Addinguser yao to group Oracle
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# id yao
uid=500(yao)gid=500(yao) groups=500(yao),400(Oracle)
[iyunv@CentOS-6~]#
<<========================================【newgrp】========================================>>
newgrp命令
功能:
例如用户需要运行一个程序,但是没有权限时,可临时切换进该程序的所有组,让用户临时拥有改组的权限,
当用户临时加入该组后创建的文件的属组也会是这个组,提前是要先用gpasswd为用户组创建密码。
格式:
newgrp[-] [group]
实例:
//先创建一个用户user1,把user1临时加入Oracle组
[iyunv@CentOS-6~]# useradd user1
[iyunv@CentOS-6~]#
[iyunv@CentOS-6~]# su - user1
[user1@CentOS-6~]$ newgrp Oracle
Password:
//使用id命令查看user1的用户ID和组ID,此时可见user1已经临时加入到Oracle组了
[user1@CentOS-6~]$ id
uid=501(user1) gid=400(Oracle) groups=400(Oracle),501(user1) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
//在主目录下创建名为123的目录,可见,该目录的属主为Oracle组
[user1@CentOS-6~]$
[user1@CentOS-6~]$ mkdir 123
[user1@CentOS-6~]$ ll
total4
drwxr-xr-x.2 user1 Oracle 4096 Aug 27 02:08 123
//使用exit命令后退出该组,再用id命令查看user1用户,此时已不再隶属于Oracle组了
[user1@CentOS-6~]$ exit
exit
[user1@CentOS-6~]$ id
uid=501(user1) gid=501(user1)groups=501(user1)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[user1@CentOS-6~]$
<<========================================【groupdel】========================================>>
groupdel命令
功能:
删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。
★若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
格式:
groupdelgroup
<<==========================================【su】==========================================>>
su命令
功能:
SwichUser 切换当前用户身份到其他用户身份,
管理员切换到普通用户时无需输入密码,普通用户则要输入密码
格式:
su[OPTION] USERNAME
su [-]USERNAME
常用选项:
-c<命令>或--command=<命令>:执行完指定的命令后,即恢复原来的身份
-或-l:完全切换,同时变更工作目录,以及HOME,SHELL,USER,和环境变量等
-m,-p或--preserve-environment:变更身份时,不要变更环境变量

-s<shell>或--shell=<shell>:指定要执行的shell

★使用su切换用户身份时,如果不加任何选项的话则是不完全切换,工作目录跟SHELL、环境变量等都不变。

实例:
//使用su命令切换到用户yao的身份,执行id命令
[iyunv@CentOS-6~]# su -c id yao
uid=500(yao) gid=500(yao)groups=500(yao),400(Oracle)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[iyunv@CentOS-6~]#



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104733-1-1.html 上篇帖子: samba 目录访问异常的问题 下篇帖子: Linux磁盘与文件系统管理详细总结 Linux 用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表