用户管理
文件类型
-
文件标志 文件类型 例子 - 普通文件 数据文件、纯文本文件、程序 d 目录 /dev b 块设备 /dev/sda1 c 字符设备 /dev/tty1 s 套接字 /dev/log p 命名管道 执行命令 sudo find / -type p l 符号链接 /dev/rtc -> rtc0
查看当前用户的信息
root@kali:~# id
uid=0(root) gid=0(root) 组=0(root)
和用户组相关的文件
/etc/passwd /etc/shadow/ /etc/group
加密算法 md5 sha-256 sha-128
将用户添加到sudo 管理员组 提高用户的权限
用户/组管理
添加用户组 groundadd 删除用户组 grounddel
用户添加 useradd
root@kali:~# grep "wuwei" /etc/passwd
wuwei:x:1000(主组):1000(附加组)::/home/wuwei(home目录):/bin/bash(使用的shell)
root@kali:~# id wuwei
uid=1000(wuwei) gid=1000(wuwei) 组=1000(wuwei),27(sudo)
useradd name -u(制定uid) -d(制定home目录) -s(制定shell终端) -G(制定附加组)
userdel name删除用户 但是不删除用户的目录和mail
userdel -r name 删除用户的所有信息包括目录
修改已经创建的用户属性
usermod -aG 增加新的附加组(不覆盖) -s /sbin/nologin (更改用户的终端)
文件权限
文件权限设置 可以用于复制摸个用户或组 能以何种方式访问某个文件
基本权限UGO 所属者:U 所属组:G 其他人:O
权限类型:读:r:4 写:w:2 执行:x:1
更改文件的所属者,所属组
root@kali:/home/wuwei# ls -lh
总用量 0
-rw-r--r-- 1 root root 0 7月 16 03:43 wuwei.txt
chown
root@kali:/home/wuwei# chown wuwei.wuwei wuwei.txt
root@kali:/home/wuwei# ls -l
总用量 0
-rw-r--r-- 1 wuwei wuwei 0 7月 16 03:43 wuwei.txt
前面是所属者.所属组
chgrp
root@kali:/home/wuwei# chgrp root wuwei.txt
root@kali:/home/wuwei# ls -l
总用量 0
-rw-r--r-- 1 wuwei root 0 7月 16 03:43 wuwei.txt
更改文件的权限chmod:
支持的操作符 +-=
root@kali:/home/wuwei# chmod o=rwx wuwei.txt
root@kali:/home/wuwei# ls -al
总用量 8
drwxr-xr-x 2 root root 4096 7月 16 03:43 .
drwxr-xr-x 3 root root 4096 7月 16 03:43 ..
-rw-r--rwx 1 wuwei root 0 7月 16 03:43 wuwei.txt
root@kali:/home/wuwei# chmod o-x wuwei.txt
root@kali:/home/wuwei# ls -al
总用量 8
drwxr-xr-x 2 root root 4096 7月 16 03:43 .
drwxr-xr-x 3 root root 4096 7月 16 03:43 ..
-rw-r--rw- 1 wuwei root 0 7月 16 03:43 wuwei.txt
root@kali:/home/wuwei#
chmod a+x 所有人增加执行权限
数组表示方法 chmod 666 file
r,w,x 权限对文件和文件夹的意义
r读取 对文件可以读取文件的内容 对目录可以列出文件夹的内容
w写入 对文件可以更改文件的内容 对目录可以创建删除目录中的文件
x执行 对文件可以作为命令执行文件 对目录可以是否可以打开文件夹
基本权限ACL 设置基本权限 rwx 基本用法:
root@kali:/home/wuwei/test# getfacl file2
# file: file2
# owner: root
# group: root
user::rw-
group::r--
other::r--
setfacl 参数
-m:设置后续acl参数
-x:删除后续acl参数
-b:删除全部的acl参数 删除此文件或文件夹的所有acl权限
-k:删除默认的acl参数
-R:递归设置acl,包括子目录
-d:设置默认acl
root@kali:/home/wuwei/test# setfacl -m u:wuwei:rwx file2
root@kali:/home/wuwei/test# setfacl -m g:wuwei:rw file2
root@kali:/home/wuwei/test# getfacl file2
# file: file2
# owner: root
# group: root
user::rw-
user:wuwei:rwx
group::r--
group:wuwei:rw-
mask::rwx
other::r--
getfacl file1 | setfacl --set-file = -file2 复制file1的acl权限给file2
继承如果希望用户对home/以及home/一下的文件和文件夹有权限
setfacl -m u:xxx:r /home
继承权限 setfacl -m d u:xxx:r /home
高级权限 suid sgid sticky
SUID的限制与功能:
1)SUID权限仅仅对二进制(binary program)有效
2)执行者对于该程序有x权限
3)该权限仅仅在执行该程序是有效(run-time)
4)执行者将被赋予owner的权限
举个例子,这就像皇帝的尚方宝剑、执剑者有皇帝的权利,但是这仅仅是尚方宝剑在他手里的时间里。
linux中的passwd就是最好的例子,它被设置了SUID、普通用户也可以改密码。
注意在设置时如果该文件有x
使用ls -l查看在owner的权限为上为小写的s
如果没有,则为S。
设置的方法:
chmod u+s 文件
SGID
与suid不同,SGID可以对目录或文件设置:
如果是对文件设置SGID他的功能和限制如下,
1)SGID权限对二进制(binary program)有效
2)执行者对于该程序有x权限
3)该权限仅仅在执行该程序是有效(run-time)
4)执行者将被赋予group的权限
/usr/bin/locate就是个例子
如果是对目录设置SGID他的工能和限制如下、
1)用户若对此目录具有r与x的权限是,该用户能够进入目录
2)用户在此目录下的有效组(effective group)将会变成改目录的group
3)用途:若用户在此目录下具有w权限,则使用者所新建的文件其group将变成该目录的group
4)SGID对于团队项目开发来说是非常有用的设置的方法:
chmod g+s
Sticky Bit
SBIT目前只对目录有效,对文件无效。他的作用:
当多个用户对于此目录具有w、x权限,用户新建的文件或目录只有root有权利删除,即,其他用户只能对自己的文件进行del、rename、move等动作,而无法删除其他人的文件。
系统中的/tmp就是这样一个目录
设置的方法:
chmod o+t
suid 普通用户通过suid提权 针对文件 执行者将具有拥有者的权限 对二进制程序有效
chmod u+s /bin/cat cat/root/.log
sticky 用户只能删除自己的文件 针对目录 要对目录有执行权限
chmod o+t /dir
rwxrwxrwt 2 root root 4096 09-02 02:26 /home/dir1
sguid 对二进制程序有效 主要用在目录上 和suid类似
mkdir /home/hr
chgrp hr /home/hr
chmod g+s /home/hr
touch /home/hr/file
ls /home/hr
此命令可以是文件的主属组 继承当前文件夹的属组
注意
某些情况下会出现大写的S和T
如果你本来是小的s和t,但是此时去掉了文件或者目录的执行权限,那么
这时候的小s和小t就变成了大S和大T了,因为如果没有了x权限,根据我们上面讲的内容,这个特 殊的权限就相当于一个空的权限,没有意义。也就是说,如果你看到特殊权限位置上变成了大写的了,那么,就说明,这里的权限已经不起作用了。
进程掩码umask
我们新创建的文件目录本身也是有默认权限的,这个默认权限就是由权限掩码umask决定的代表默认不要的权限
umask就是目前用户创建文件或者目录的时候默认的权限值
显示umask umask或者umask -s
0022
创建目录 默认是777 创建文件 默认是666
创建文件夹后的权限就是 777-022 = 755 创建文件后的权限就是666-022 = 644
如果我们想改掉umask 直接umask后面接相应的数字即可
永久修改 /etc/profile(重新登录会生效) /etc/bashrc(切换目录就会生效)
文件属性
root@kali:/home/wuwei/test/sti# touch eee.txt
root@kali:/home/wuwei/test/sti# lsattr eee.txt
--------------e--- eee.txt
+添加 -删除 =赋值
选项 | 含义 |
---|---|
-R | 递归更改目录下所有子目录和文件的属性 |
-V | 显示详细信息 |
-f | 忽略大部分错误信息 |
-v version | 设置文件的档案号码 |
mode | 设置文件的隐藏属性,其格式为+-=[acdeijstuACDST] |
属性 | 含义 |
---|---|
A | 文件的atime(access time)不可被修改,这样可以减少磁盘I/O数量,对于笔记本电脑有利于提高续航能力 |
S | 硬盘I/O同步选项,功能类似sync |
a | 即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性 |
i | 文件不能被删除、改名、设定链接关系,同时不能写入或新增内容(即使是root用户)。只有root才能设定这个属性 |
c | 即compresse,文件会自动的经压缩后再存储,读取时会自动的解压 |
d | 即no dump,设定文件不能成为dump程序的备份目标 |
j | 即journal,设定此参数使得当通过mount参数”data=ordered”或”data=writeback”挂载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为data=journal,则该参数自动失效 |
s | 即secure,保密选项。设置了s属性的文件在被删除时,其所有数据块会被写入0 |
u | 即undelete,反删除选项。与s相反,文件在被删除时,其所有的数据块都保留着,用户今后可以恢复该文件 |