Linux用户及权限管理

前段时间由于个人原因长时间没有更新,后面会继续更新的 。这都是我在学习linux时做的笔记,写在这里方便大家也是方便自己 。
用户管理相关文件

  • /etc/passwd
  • /etc/group
  • /etc/shadow
  • /etc/gshadow
/etc/passwd文件格式:
root:x:0:0:root:/root:/bin/bash1. 用户名2. 用户的密码占位符3. UID4. GID5. 注释信息6. 用户家目录7. 用户默认的shell/etc/group 文件格式:
www:x:1002:1. 组名2. 组密码占位符3. GID4. 以此组为其附加组的用户的用户名列表,如果有多个用户可以用逗号隔开/etc/shadow文件格式:
www:!!:15836:0:99999:7:::zhou:$1$zNXbcLE7$ANbOzBEBzSGWD.wy21.b31:16041:0:99999:7:::1. 用户的登陆名;2. 加密过的密码,如果为!!则表示此用户已禁用;加密方法是md5(Message Degist 消息摘要),这是一个单向加密算法 。单向加密的特点:2.1定长输出 128bit 。不管源数据多长,加密后的密文都一样长;2.2 雪崩效应,即:改变了一点,加密后的结果都不一样;2.3 源文一样,加密后的密文都一样;常见的单向加密算法:sha1 = secure hash algorithm 安全的hash算法;$1$zNXbcLE7$ANbOzBEBzSGWD.wy21.b31第1和第2个$之间的那个”1”表示:加密的方法是md5;第2和第3个$之间的那串字符表示:系统在给密码加密的时候所添加的“盐”,是为了防止相同的密码加密后的密文一样,造成信息的泄露,这一点是利用了md5的雪崩效应;第3个$后面的字符串就是密码+“盐”后的密文;3. 记录从1970年1月1日开始到你最近一次修改密码之间所经过的天数;也就是密码的最近修改时间;4. 密码最短使用期限:单位天数,默认为0,表示不限制;5. 密码最长使用期限:单位天数,默认是99999,表示可以永久有效;6. 在密码过期N天之前,向用户发出警告;默认是7天;用户帐号的非活动期,在此期间,用户登陆后第一件事,就是修改自己的密码;当错过此时间后,此帐号会被禁用 。只有找root来启用;7. 用户帐号的有效期限;8. 最后一段做保留;创建用户
useradd|adduser [options] username
/etc/default/useradd 该文件用来初始化一些参数的值 。比如默认的shell,默认的家目录的位置等;
/etc/skel/ 该目录中的文件就是在创建新用户时的模板文件,当创建好一个用户时,就会把该目录下的文件CP到该用户的家目录下面,一般该目录都是隐藏的文件;
/etc/login.defs 该文件指定了用户的UID和GID的最小值500和最大值60000,默认添加用户的时候就从最小值开始;
-c 表示为当前要添加的用户写个注释信息;
-u 表示指定用户的UID;
-g 表示指定用户的GID;
-G 表示指定用户的附加组;
-d 表示指定用户的家目录位置;
-M 表示不为用户创建家目录;
-s 表示指定用户的默认shell;选项都在/etc/shells中
-e 指定用户的过期日期,格式MM/DD/YYYY
-o 表示可以创建一个与已知的UID相同的用户,例如# useradd –o –u 0 xfzhou 表示创建了一个uid为0的xfzhou用户,当然了这个用户也是root 。在Linux中是根据UID来识别用户的级别的;
-r 创建一个程序用户,UID范围是 1-499,这些用户是不能登陆系统的;
当用户创建完成后,该用户由于没有密码,所以是不能直接登陆系统的 。可以先由root给该用户先设置个初始密码 。当用户登陆后就可以自己来改密码了;
#passwd username
#passwd //不写用户名就是给当前用户改密码;
passwd –l 锁定一个用户
passwd –u 解锁用户
passwd –stdin < passwdfile
创建组:
groupadd [options] groupname
# groupadd -g num group1 创建组的同是为组设置gid
gpasswd命令:
gpasswd -a user1 group1 //把用户user1添加到group1中去 。
gpasswd -d user2 group2 //把user2从group2组中删除;
gpasswd -M user1 user2 user3 group1 一次性把多个用户添加到指定的组中;
查看用户信息:
# id [options].. username
-u 显示指定用户的UID
-g 显示用户的GID
-G 显示用户附加组
-n 显示用户的用户名
[root@Nginx ~]# id -u root
0
[root@Nginx ~]# id -g root
0
[root@Nginx ~]# id -G root
0 1 2 3 4 6 10
[root@Nginx ~]# id -G root -n
root bin daemon sys adm disk wheel
[root@Nginx ~]#
# finger username //user information lookup program
[root@Nginx /]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 一 12月 2 21:10 (CST) on pts/0 from 192.168.10.254


推荐阅读