用户类别:
管理员id:0
普通用户id:1-65535
系统用户id:1-499
一般用户id:500-60000
用户组类别:
管理员组id:0
普通组id:1-65535
系统组id:1-499
一般组id:500-60000
用户组类别:
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的 组
基本组:用户的默认组
附加组:基本组以外的其他组
/etc/passwd文件格式:
account: 登录名
password: 密码
UID:用户ID
GID:基本组ID
comment: 注释
HOME DIR:家目录
SHELL:用户的默认shell
/etc/shadow文件格式:
用户名
加密密码
最后一次修改密码的时间:从1970-01-01开始算起的天数
最短使用期限:密码不可更改的天数,默认为0,为空表示用户永久可用
最长使用期限:密码保持有效的天数,默认是99999,为空表示用户永久可用
警告时间:提前多少天警告用户密码将过期,默认为7,为空表示用户永久可用
非活动时间:警告之后到用户密码失效的天数,默认为空,为空表示用户永久可用
过期时间:从1970-01-01开始算起的天数,默认为空,为空表示用户永久可用
/etc/group文件格式:
用户组名
用户组密码
用户组ID
用户列表:以该组为附加组的用户的列表
用户管理
1.useradd [OPTIONS] USERNAME
-u UID:指定UID
-g GID:指定GID(基本组)
-G GID,...:指定GID(附加组)
-c “COMMENT”:指定附加信息
-d /path/to/directory:指定家目录
-s /path/to/shell:指定默认shell
-m -k:将/etc/skel下的文件复制到家目录中,/etc/skel下为shell的一些配置文件,命令默 认会执行[-m -k]选项
-M:强行不添加家目录
-r:添加系统用户
/etc/login.defs文件:创建用户的一些默认参数,如是否默认添加家目录,UID、GID范围等。
/etc/shells文件:指定了当前系统可用的安全shell
2.userdel [OPTIONS] USERNAME
-r:同时删除用户的家目录,默认不会删除家目录
3.id:查看用户的帐号属性信息
-u:只显示UID
-g:只显示基本组GID
-G:显示所有GID,包括基本组和附加组
-n:显示名称,连同其它选项一起用
[root@localhost ~]# id root uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh [root@localhost ~]# id -gn root root [root@localhost ~]# id -u root 0
4.finger:显示主机上登陆用户的信息
不带参数:显示当前主机的登陆用户信息,包括用户名,家目录,停滞时间,登陆时间,登陆 shell等信息
USERNAME:指定用户的信息
[root@localhost ~]# finger Login Name Tty Idle Login Time Office Office Phone Host root root tty1 1d Aug 19 16:59 root root pts/0 Aug 24 07:02 (192.168.66.1)
4.usermod:修改用户帐号属性
-u UID:修改UID
-g GID:修改基本组GID
-a -G GID:不使用-a会覆盖此前的附加组,使用-a会追加附加组
-c “COMMANT”:修改附加信息
-d -m /path/to/directory:指定新的家目录,并将旧家目录的文件移到新家目录中
-s /path/to/shell:修改用户的shell
-l:改用户名,只修改用户名,属组和家目录不变
-L:锁定帐号
-U:解锁帐号
5.chsh:修改用户的默认shell
chsh username 回车按提示操作
6.chfn:修改附加信息
chfn username 回车按提示操作
用户组管理
1.groupadd [OPTION] GRPNAME
-g GID:指定GID
-r:添加为系统组
2.groupmod [OPTION] GRPNAME
-g GID:修改GID
-n GRPNAME:修改组名
3.groupdel GRNAME
4.gpasswd:为组设置密码,使用newgrp命令时要输入对应的gpasswd
gpassed GRPNAME 回车后按提示操作
5.newgrp GRPNAME:临时把一个组当作基本组来使用,exit后退出返回到之前的基本组
密码管理
1.passwd [OPTION] [USERNAME]
--stdin:passwd默认要用终端作为标准输入,--stdin表示可以用任意文件作标准输入
例子:echo 'chenqiyi' | passwd --stdin root
2.chage [OPTIONS] USERNAME:修改密码相关的时间参数
-d:最近一次的修改时间
-E:过期时间
-I:非活动时间
-m:最短使用期限
-M:最长使用期限
-W:警告时间
文件和目录的权限:r,w,x
文件:
r:可读,可以使用类似cat等命令查看文件内容;
w:可写,可以编辑或删除此文件;
x:可执行,eXacutable,可以在命令提示符下当作命令提交给内核运行;
目录:
r:可以对此目录执行ls以列出内部的所有文件;
w:可以在此目录删除或创建文件;
x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息
rwx组合:
0 000 ---:无权限
1 001 --x: 执行
2 010 -w-: 写
3 011 -wx: 写和执行
4 100 r--: 只读
5 101 r-x: 读和执行
6 110 rw-: 读写
7 111 rwx: 读写执行
权限管理
1.chown:改变文件属主(只有管理员可以使用此命令)
格式:chown USERNAME file,...
-R:递归修改,修改目录及其内部文件的属主
--reference=/path/to/file file,... 属主和属组一起改
chown USERNAME:GRPNAME file,... 属主和属组一起改
USERNAME.GRPNAME file,... 属主和属组一起改
2.chgrp GRPNAME file,...
-R:
--reference=/path/to/file file,... 属主和属组一起改
3.chmod:修改文件的权限,可修改文件中对应三类用户的权限
-R:
--reference=/path/to/file file,...
直接指定用户的权限:
chmod XXX file,...
例子:chmod 766 ./test 766――rwxrw-rw-
修改某类用户或某些类用户权限:
u,g,o,a a表示全部
chmod 用户类别=MODE file,...
例子:chmod ug=rw- ./test
修改某类用户的某位或某些位权限:
u,g,o,a
chmod 用户类别+|-MODE file,...
例子:chmod ug-x ./test
chmod -x ./test = chmod a-x ./test
4.umask:遮罩码 默认管理员用户为022,普通用户为002
无参数:显示当前用户的umask值
XXX:修改umask
创建文件:666-umask
创建目录:777-umask
注意:文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1
手动添加用户:
1.在/etc/group下添加对应用户组行,格式为
用户组名:密码:GID:以此组为附加组的用户列表
2.在/etc/passwd下添加对应用户行,格式为
用户名:密码:UID:GID:用户信息说明栏:家目录:使用的shell路径
3.在/etc/shadow下添加对应用户行,格式为
用户名:加密密码:最后一次修改密码的时间:密码使用最小期限:密码使用最大期限:警告时间:非活动时间:过期时间
加密密码生成办法:openssl passwd -1 -salt '8位填充位' 回车后按提示输入要创建的密码
4.将/etc/skel/目录下的文件全部复制到用户家目录下
5.chown -R 用户名:用户组名 家目录 指定家目和家目录下文件的属主和属组
6.chmod -R go= 家目录 将家目录和家目录下文件的属组和其他用户权限设为无权限
特殊权限
正常情况下,某用户运行某程序时,相应进程的属主和属组为用户自身的属主和属组
SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者
chmod u+s FILE 增加SUID属性
chmod u-s FILE 去掉SUID属性
如果FILE本身原来就有执行权限,则SUID显示为s,否则显示为S
SGID:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者
chmod g+s FILE
chmod g-s FILE
多用于同一文件目录下,多个用户加入一个附加组共同工作(创建并编辑同一个文件 属组w权限)
Sticky:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件
chmod o+t DIR
chmod o-t DIR
001:表示Sticky
010:表示SGID
100:表示SUID
例子:chmod 5755 ./test
注意:权限位中显示特殊权限为S或T时,说明该文件本不具备对应的x权限。
[root@localhost ~]# touch test [root@localhost ~]# chmod 7666 test [root@localhost ~]# ls -l ...... -rwSrwSrwT 1 root root 0 11-10 09:37 test