用户类别:

管理员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

注意:文件默认不能具有执行权限,如果算得的结果中有执行权限,则将其权限加1Linux学习笔记<五>——用户管理和权限管理_Linux学习 用户管理 权限管理


手动添加用户:

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