linux的用户管理

Linux用户管理
Linux系统中的用户分类:
1. 超级用户(Superuser):root 拥有最高权限  uid=0
2. 系统用户:不需要登录系统,服务于应用程序的用户,主要用于维护系统的正常运行 bin    nobody    uid=1~499之间
3. 普通用户:一般是可以登录系统的,是由管理员添加的,uid>=500
uid:user identifier 用户标识
gid: group identfier 组标识
系统是通过uid来识别用户角色的


对用户的操作:
1. 查看用户
id user_name //默认查看当前用户信息
whoami //查看当前用户是谁

2. 添加用户 useradd user_name
-c 注释性的描述信息
-d 指定用户的家目录,默认情况下:root的家目录是/root,普通用户的家目录是/home
-g 指定用户的主要组,前提:组是必须存在的
-G 指定用户的附加组(附属组),前提:组是必须存在的
-s 指定用户的登录shell
-u 指定用户的uid
-M 不建立家目录
-e 指定用户过期时间, 日期
-f 指定用户过期时间, 天数

执行完useradd user_name命令,则会有以下操作:
1. 会在/etc/passwd添加一行
2. 会在/etc/group添加一行
3. 会在/etc/shadow添加一行
4. 会在/etc/gshadow添加一行
5. 会在/home目录下建立一个与用户同名的目录作为家目录,同时会从/etc/skel目录中复制出所有的隐藏文件到该目录
6、修改权限
只有root能操作该命令,添加用户时,如果不指定用户的组,那么默认会创建一个与用户名同名的组作为用户的主要组

3. 删除用户 userdel user_name user delete
-r: 可以干净的删除一个用户 //邮箱所在位置:/var/spool/mail/

4. 修改用户 usermod user_name user modify
-G 修改用户的附属组,不管用户原来的附属组如何,直接覆盖
-g 修改用户的主要组
-a 一般和-G联合使用,追加附属组
-u 修改用户的uid
-d 修改用户的家目录
-s 修改用户的shell
-a 一般和-G联合使用,追加附属组
-L 锁定用户
-U 解除锁定
-l 改名

5. 为用户设置密码  passwd user_name
超级用户:既可以修改自己的密码,又可以修改别人的密码,并且不需要提供当前密码
普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码
普通用户修改自己的密码,需要当前密码,而且长度最少6位,而且不能是字典单词
/etc/shadow:存放用户密码信息的文件
# head -1 /etc/shadow
root:$6$9AOmQbxm$3X1qbP0srKNql7jCXpmwhyNxGTHmIbT65zF.:16276:0:99999:7:::
用户名:加密后的密码:....
$6$:加密算法是sha512
$1$:加密算法是md5

finger user_name  查看用户的相关信息
chfn user_name   修改用户相关信息
userinfo user_name    X window下修改用户相关信息 


对组的操作
1. 添加组  groupadd group_name
-g:添加组时,指定gid是多少

2. 修改组: groupmod group_name

3. 删除组: groupdel group_name
  注意:不能够删除用户的主要组,能够删除用户的附属组
  
4. 组管理: gpasswd
  管理/etc/group和/etc/gshadow文件的,每一个组可以有管理员,成员和密码,给组加密码:可以让知道组密码的人,临时的切换到该组中,能够使用该组的资源。
1)指定组的管理员
gpasswd -A user_name group_name
2)向组中添加成员
gpasswd -a user_name group_name
3)给组设置密码
gpasswd group_name
4)切换组 
newgrp group_name   //临时切换组
5)将用户从组中删除
gpasswd -d user_name

用户和组的关系:组中可以没有用户、也可以有一个或者多个用户。用户只有一个主要组,可以同时属于多个组,但是除了主组以外的其他组称为附属组。
组的分类:
从用户的角度分为:
主要组:primary group、initial group、first group,用户的默认组,也就是gid所标识的组
附属组:secondary group、supplementary group


与用户相关的文件:
/etc/passwd: 保存用户信息的文件
/etc/shadow: 保存用户密码相关信息的文件
/etc/group: 保存组信息的文件
/etc/gshadow: 保存组密码相关信息的文件


1. /etc/passwd
man 5 passwd
head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
用户名:密码:UID:GID:描述信息:家目录:登录shell


2. /etc/shadow
useradd zhangsan
用户有无密码两种情况:
tail -1 /etc/shadow
zhangsan:!!:16276:0:99999:7:::
passwd zhangsan
tail -1 /etc/shadow
zhangsan:$6$/23ax9CR$IDSfqNF3gZqDq4L0.Bdqd19SLbzBa6CuSpuOn.9YrFmSWYy09xPGa47SVEsQXfQJDybUDOzsu4vG.FV
KMt91l/:16276:0:99999:7:::
    man 5 shadow
    zhangsan:!!:16276:0:99999:7:::
       1)用户名
       2)加密后的密码
       3)上一次密码修改时间(单位是天,是距离1970年1月1日多少天)
       4)密码最小生存周期  单位:天  0表示随时可以修改密码;2表示两天内不能修改
       5)密码最大生存周期  单位:天,密码使用的最长时间
       6)密码到期前几天开始警告 
       7)密码过期之后到账户失效之前的时间限制        密码过期之后还可以用几天
       8)账户过期时间
       9)保留列
查看用户的密码相关的时间
chage -l root
            Last password change : Jul 25, 2014
            Password expires : never
            Password inactive : never
            Account expires : never
            Minimum number of days between password change : 0
            Maximum number of days between password change : 99999
            Number of days of warning before password expires : 7


3. /etc/group
    head -1 /etc/group
        root:x:0:
        组名:密码:GID:用户列表
        
4. /etc/gshadow
    head -1 /etc/gshadow
        root:::
        组名: 加密后的密码:组管理员:组成员
  
用户提权Sudo
sudo:某个用户能够以另外一个用户的身份通过某主机执行某命令


sudo的配置文件   /etc/sudoers
visudo
每一行就定义了一个sudo的条目:
who   which——hosts=(runas) TAG: command
别名机制:类似定义了一个组
4类:
用户别名:  User_Alias
主机别名: Hosts_Alias
参照用户: Runas_Alias
命令别名: Cmnd_Alias
别名的名字只能使用大写的英文字母组合

别名:可使用!取反
User_Alias   USERADMIN = 系统用户名  或   %组名  或用户别名
Hosts_Alias 主机名  IP  网络地址  其它主机名   可以嵌套
Runas_Alias 用户名   #UID    别名
Cmnd_Alias     命令绝对路径  目录(下面所有命令) 其它定义的命令别名
例子:定义hadoop用户可以以root用户的身份执行useradd
命令:
visudo
hadoop  ALL=(root) /usr/sbin/useradd ,/usr/sbin/usermod
执行命令:
sudo /usr/sbin/useradd username
在第一次输入后,密码会被记录,5分钟内是有效的
 sudo -k 取消密码记忆,必须再重新进行验证
 sudo -l  列出当前用户所有可以使用的sudo类的命令
例子:  
 hadoop  ALL=(root) NOPASSWD: /usr/sbin/useradd 
, PASSWD: /usr/sbin/usermod
例子:
 User_Alias USERADMIN = hadoop , %hadoop
 Cdm_Alias USERADMINCMD = /usr/sbin/useradd,
/user/sbin/usermod,/usr/sbin/userdel,
/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
  
  


和用户登录相关的文件或目录
/etc/profile
/etc/bashrc
~username/.bashrc
~username/.bash_profile
/etc/profile.d/*


su - :完全登录shell,切换后用户拥有自己的一套环境变量
  
su:不完全登录shell,切换后用户使用的是其他用户的环境变量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值