用户,组,密码 和权限管理

用户信息文件是/etc/passwd

文件内容

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

chrony:x:998:996::/var/lib/chrony:/sbin/nologin

yy:x:666:1000::/home/yy:/bin/bash


$1用户名   $2密码占位符    $3 UID     $4 GID   $5注释信息     $6 家目录位置     $7 默认shell

 

 

组文件/etc/group

root:x:0:yy   此表示root组是yy用户的附加组

$1组名 $2 占位符 $3 GID $4 组用户

 

密码文件

/etc/shadow  /etc/shadow- 第二个是默认的备份文件

root:$6$2x6s1sLb5F5J4qaE$ZcxA5ENZzJTnGDAus/0mkSvglTDUcxSQ1NdN8kk/iDLhUVElViufKOLOf80ufQ5ZA7kXHxzCN2sMzhqCZOKqU1::0:99999:7:::

$1 表示用户名

$2 为密码的密文

第一个$和第二个$中间数字表示加密用的算法 此处为6 sha512算法

1=md5

2=sha1   sha默认加密长度是160

3=sha224  后面跟的数字是他们的加密长度

4=sha256

5=sha384

6=sha512      sha 就是 安全的哈希算法

 

第二个$和第三个$中间的是添加的随机数

作用是让一样的密码一样的算法所得出的密文不一样

 

[root@yangyang ~]# echo "haha" | md5sum
7494ab07987ba112bd5c4f9857ccfb3f -
[root@yangyang ~]# echo "haha" | sha1sum
d961c3de6d6c99429806ae3d6d03f316a1168ac6 -
[root@yangyang ~]# echo "haha" | sha224sum
bb84499b78a7b8b6f77101b45dabcef0bed4660415d04b73b539498d -
[root@yangyang ~]# echo "haha" | sha256sum
bcb4fe6563d225fbc7b0e90571fc670f1ee197f18ba18e52a39c2ca80672812f -
[root@yangyang ~]# echo "haha" | sha384sum
af4b9a1a6974b14d309de0e817d0709c8e90e5ba433bf12ffd6be17dbffb34ec10af68899565d1a1b2f953b5acbd5e2e -
[root@yangyang ~]# echo "haha" | sha512sum
91d590d5f726fa14d07748c3add508459849bfc7228d8e59f204c81fffec0b7e1a8edf636726244a3bfb2715d9de505e0bc9529d046b5af2542d1d3de48e1c23 -

如果没有随机数一样的密码同一种算法得出的密文是一样的

登录时输入密码交给系统,系统在和随机数一起算 得出一样的结果就证明密码正确

 

 

 

 

 

 

 

 

 

 

 

添加用户

Useradd [选项] 用户名

-u 指定uid

-g 指定基本组的组id 此组要事先存在

-G 指定用户的附加组 多个组用逗号分隔

-d 指定用户的家目录 默认是在/home

-M 不创建用户的家目录

-s 指定用户登录时的shell 解释器

-r 创建系统用户

创建用户时默认设定的配置文件 /etc/login.defs

也可以使用

Useradd -D [选项] 的方式修改修改结果保存于/etc/default/useradd

-s 指定默认用户登录的解释器

 

 

修改用户属性

Usermod [选项] 用户名

-u uid

-g gid

-G 附加组 通常于-a 一起使用 不用-a则会覆盖之前的附加组

-c 修改注释信息

-d 修改家目录 通常于-m一起使用 用户将以前家目录的文件一起转移到新的家目录

-l 修改用户名

-s 修改默认shell

-L 锁定用户密码  此时/etc/shadow对应的用户密码前会出现!(一个)

-U 解锁用户密码

删除用户

userdel  [选项] 用户名

-r 删除家目录

 

 

添加组

groupadd  [选项] 组名

-g 指定GID

-r 创建系统组

修改组属性

Groupmod [选项]  组名

-g gid

-n 组名

删除组

groupdel 组名

 

 

设置用户密码

 

passwd [选项] 用户名

passwd   修改自己用户的密码

passwd   username 修改其他用户的密码,仅root有权限

 

-l  -u  锁定和解锁用户密码 此时/etc/shadow对应的用户密码前会出现!!(两个)

-d 清除用户密码

-e 设置过期时间

-i 设置非活动时间

-n 设置密码最短使用期限

-x 设置密码最长使用期限

-w 警告期限

 

--stdin

 echo “PASSWORD” | passwd --stdin USERNAME

经常用于在脚本内设置用户密码

 

Gpasswd [选项]  组名

-a  向组中添加用户

-d 向组中移除用户

 

 

Id [选项] [用户名]

-u 仅显示uid

-g  仅显示gid

-G 显示所有组id

-n 只显示用户名而非id   通常于上面的选项一起使用

 

 

 

 

Su 命令

Su - username

以登录模式切换

Su username

非登录模式切换

 

root外 其他用户使用su 切换用户必须输入对应用户的密码

 -c  COMMAND’仅以用户的身份运行指定的命令 注意命令要用单引号引用

 

 

newgrp [组名]

临时切换指定的组为基本组

(会模拟用户重新登录,以初始化工作环境)

                          权限管理

查看文件的权限

ls -l

 rwx rwx rwx

   (前三位)是属主权限列表

(中间三位) 属组权限列表

(后三位) 其他用户权限列表

                权限的组合机制

---    000    0

--x    001    1

-w-      010    2

-wx     011    3  

r--    100    4

r-x    101    5

rw-    110    6

rwx    111    7  

 

    对于文件

r=read     读权限  = 可获取文件的数据

w=write   写权限  = 可修改文件的数据

x=excute  执行权限  = 可将文件运行为进程

对于文件来说出于安全的考虑默认是没有执行权限的 

    对于目录

r  = 可使用ls命令或许其下的所有文件列表

w  = 可修改此目录下的文件列表 即创建和删除

x   =  可cd至此目录中 且可以使用ls -l 来获取所有文件的属性

 

 

权限的管理命令

chmod [选项] mode file 

常用选项

-R 递归修改 (针对目录)

我一般mode使用数字来表示

[root@yangyang ~]# chmod 755 1.sh
[root@yangyang ~]# ll 1.sh
-rwxr-xr-x 1 root root 0 5月 31 20:19 1.sh
[root@yangyang ~]#

 

chown 可以修改属主属组

-R  递归修改 (针对目录)

[root@yangyang ~]# chown yy:yy 1.sh
[root@yangyang ~]# ll 1.sh
-rwxr-xr-x 1 yy yy 0 5月 31 20:19 1.sh

[root@yangyang ~]# chown :root 1.sh 

[root@yangyang ~]# ll 1.sh
-rwxr-xr-x 1 yy root 0 5月 31 20:19 1.sh

[root@yangyang ~]# chown root 1.sh
[root@yangyang ~]# ll 1.sh
-rwxr-xr-x 1 root root 0 5月 31 20:19 1.sh
[root@yangyang ~]#

 

umask 值

命令

umask  : 查看当前umask

umask  [MASK]  临时设置umask值

MASK 以数字来表示

umask默认0022

 

文件666  减  umask

之所以文件是要666减去umask值是因为 文件默认不能有执行权限,若减去的结果中有执行权限   则加1

目录 777  减 umask

 

 

 

 

                    文件特殊权限

 

suid          sgid        sticky

0     0    0     =   0

 

0        0      1     =   1

 

0     1     0    =   2

 

0     1     1    =   3

 

1     0     0    =   4

 

1     0     1    =   5

 

1     1     0    =   6

 

1     1     1    =   7

 

 

 

umask值的第一位用来表示文件的特殊权限

 

通过以上数字来表示对应的权限 1表示有权限0表示没权限

 

 

 

suid

 

  1. 任何一个可执行文件是否可以运行为进程取决于执行的用户有没有权限
  2. 启动为进程后 其进程的属主是原本文件用户而不是执行的用户
  3. chmod u+s  “FILE”  chmod u-s FILE

 

sgid

 

1默认情况下 用户创建文件后属组为用户的基本组

 

2一但目录有了sgid权限后 在这个目录下创建文件的属组为目录的属组

 

3 chmod g+s DIR”  chmod g-s DIR

 

Sticky

 

1  目录设置此权限后 自己只能删除自己的文件,

 

2   chmod o+t “DIR”   chmod o-t DIR

 

 

 

权限映射关系

 

SUID user 占据属主的执行权限位

 

s   属主有执行权限

 

S   属主没有执行权限

 

SGID group 占据group的执行权限

 

s   属组有执行权限

 

S   属组没有执行权限

 

stisky other 占据ohter 执行权限

 

t   ohter有执行权限

 

T ohter没有执行权限

 

posted @ 2020-05-31 17:44  蠢狐狸  阅读(703)  评论(0)    收藏  举报