用户、组的相关配置文件: 在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~]#
|