useradd 创建用户
userdel 删除用户
groupadd 创建组
groupdel 删除组
passwd 设置密码
usermod 设置用户信息
chage 设置密码的一些设定
gpasswd 设置组的成员
chmod 设置权限
chown 修改文件拥有者/属组
chgrp 更改文件工作组所有权
umask 文件创建屏蔽字
getfacl 查看文件的acl设定内容
setfacl 设置文件的acl规范
硬盘相关
which+命令 查找命令的位置
whereis 也可以 同时还能显示文档地址
whatis 显示命令的作用
❗❗❗❗内置的命令用which找不到----(百度这么说 但是我的好像可以找到)
but ??????????????
type 命令 查看命令的类型(内置/内嵌/没有找到)
-或者f 开头 普通文件
d 目录文件
c 字符设备
b 块设备
l 连接文件
s 套接字文件
p 管道文件
内部和外部命令
type 没有显示内嵌就是外部命令
touch 一个已经存在的文件时 不会报错 也不会清空原来文件中的数据 只是会更新文件的时间戳 也就是 atime mtime ctime
ctime 是内核层面的 不能手动更改
另外两个都可以手动设置
touch -at 202007121522.46 2020年7月12日15:22 46秒
-t是同时修改 a和m
-at只修改a
touch -lu ---------设置访问时间为当前系统时间
-l ---------- mtime 内容修改时间
-lc -------------- ctime 内容和属性修改时间
设置系统时间 date -s "2029-07-13 19:22:45"
$() 拿到()里命令的结果
$(()) 拿到(())里四则运算的结果
> 输出重定向 (清空然后再写)
>> 追加重定向 (直接在末尾写)
界定文件类型---------file 文件
判断命令类型---------type 命令
查看系统是rhel6还是rhel7-------------cat /etc/redhat-release
新建用户-----------useradd
-c 注释
-u 用户id
-g 组id
-G 辅助组❗名❗
-d 家目录
-s shell 类型 (例如可不可以登录系统)要拒绝系统用户登录,可以将其 shell 设置为 /usr/sbin/nologin (/sbin/nologin)或者 /bin/false。
-m 新建用户时创建家目录 ❗和 -d 一起使用时需要 在-d前面 例 -m -d
-M 不创建家目录 ❗同上
-r 指定新建系统用户 (rhel7)可用 cat /etc/redhat-release 查看版本
实例:
useradd -u1234 -g1234 -Groot,bin,gkd -c"这是一个测试账号" -m -d /var/lib/tom -s /sbin/nologin tom
/etc/passwd 下各个字段的含义
❗❗❗创建用户的时候设置 不创建家目录的时候 /home 下不会有其家目录
但是 /etc/passwd 对应的一列信息中还是会显示主目录(只不过显示的那个目录并不存在)
【扩展】
centos7中用户分类(三种)id号划分和6不一样
1超级用户
用户名为 root,用户 ID 为 0。有着至高无上的权限,可执行所有任务,可访问所有文件,可管理所有用户。
在服务器配置工作完毕后,为了安全,不应该直接使用超级用户。
2 普通用户
用户 ID 默认从 1000 开始。供普通用户使用。
3 系统用户
用户 ID 默认为 1-499。仅供系统服务使用,默认不可登录(即默认 SHELL 为 /sbin/nologin)。
修改已存在用户的信息--------------usermod
-d
-m
-g
-G
-s
-u
-c---------------------------以上和useradd一样
-l --------------------新的用户名 (小写L 不是i)
-L--------------用户锁定
-U--------------解锁
删除用户-------------userdel
无参 只删除用户
-r------------删除用户时将家目录也删除
更改用户密码相关信息----------------chage
-d 修改设置密码的时间 0表示第一次登录强制修改密码
-m 多少天后可以改密码
-M 每隔多少天要更改密码
-W 密码到期前多少天提示
-I (大写I 不是L) 宽容期
-E 有效期 (可直接写日期 “2023-02-15”表示有效期截止到 2023年2月15日)
需求 新建用户 hugo 初始密码 password
# useradd hugo
# echo password | passwd --stdin hugo 第一次登录 强制修改密码 # chage -d 0 hugo 每隔30天 更新密码 # chage -M 30 hugo 更新提示前3天 # chage -W 3 hugo 延期1天 # chage -I 1 hugo 用户使用期限为2年 # chage -E '2018-01-12' hugo
-------------------------------------------------------------- # tail -1 /etc/shadow hugo:$6$2AKIZ3Sm$E5hXQ8U3p580jR6UElG.QiwvL3yjE5wex8sZ.n3qrkGCajIyePqP4XratUF0d3FmstZVDycqeg3SLvIf03WQ51:0:0:30:3:1:17543:
用户名:加密密码:最后修改密码时间:最小修改间隔:密码有效期:警告天数:宽容器:账号失效时间:保留
超级用户可直接更改其他用户的密码
passwd 用户名
非交互式设置密码
echo "123456" | passwd --stdin test03
权限
读写权限可独立 ❗但是执行权限依赖于读权限
例如 -wx 虽然有执行权限 但是不能执行 因为没有读权限
7---------------------111(二进制)--------rwx
6----------------------110----------------------rw-
其他同理
0|特殊|用户|组|其他
00777满权限
4-----读
2-----写
1-----执行
0-----无权限
7=4+2+1----------rwx
6=4+2--------rw
3=2+1--------wx
chmod 00735 my.txt
= ....... 设置权限 chmod ugo=rwx my.txt
+.........增加权限 chmod u+w my.txt
-..........取消权限 chmod g-w my.txt
u 用户
g 组
o 其他
a 所以用户
=- 设置权限为---
目录权限 r和x的区别
r权限 能看到 一个目录下有啥 但是看不到里面内容的属性信息 也不能进入里面的内容
加上x权限之后 就可以完全查看目录下的文件内容了 而且也可以cd进入文件
❗一个文件能不能删除 不取决于文件自己的权限
而是取决于 该文件所在目录的权限 (目录需要有写权限)
❗更改文件内容取决于 文件自己的写权限
改文件名,删除文件,增加文件---------------目录权限
更改文件里面的内容-------------------------------文件权限
r ---------------能看见目录下的文件名
x----------------能进入目录下的文件,查看文件的详细信息
w---------------改名,增加,删除
超级用户可以 更改任意文件的任意权限
普通用户只能更改属于自己文件的任意权限
chmod
chown---------修改文件拥有者/组
❗ root用户可以用chown任意改变 普通用户用chown只能改变自己的文件组的属性改为自己所在主组
chown 拥有者:组 文件
chown 拥有者 文件
chown :组 文件
-R 递归 对目录设置 对目录下的所有文件都生效
chgrp 更改文件或者目录的工作组所有权--------也就是chown 的一部分 只改变组
chgrp -R 组名 文件名
特殊权限
粘滞位(1)
sticky(1/t) --粘滞位(保证正文段),在公共目录中,用户只能管理(删除)自己的文件(拥有者) 该目录两类人拥有绝对的控制权:1.管理用户root 2.该目录的拥有者 保证正文段:对于可执行文件 在其执行完毕之后将代码(正文)部分缓存起来,提高之后的加载速度 # chmod 01755 /test1 # chmod o+t /test1 ❗小写 t 设置特殊权限的时候用小写
T权限 和o的x 共用一个位置
ls 查看权限的时候
都没有 -
只有x x
只有T T
T x 都要 t
数字表示法
01777 1表示T权限
❗T 权限虽然放在o 的x位置上 但是 T权限是给所有人的
强制位(2)
【g+s】 : 【强制位】:【sgid】
由来:每一个上班族都在为生活打拼着。每一天我们在公司都会做出来一些贡献,一些和工资等价值的东西。那么这些东西是属于谁呢?应该是属于公司吧。也就是说,是我们做出来的,但他的所有人应该是公司而不是我们。
❗❗❗❗粘制位只对目录生效;这里强制位对目录和文件都有效:
###对目录:任何人在有sgid(强制位)权限的目录中建立的文件都属于目录所有组 ###对文件:只针对二进制可执行文件,当文件上有sgid时,任何人执行此文件产生的进程都属于文件所在组
s权限 和g的x 共用一个位置
表示用s 大小写规则与上面相同
4【冒险位】:【suid】
###只针对二进制可执行文件,当文件上有suid时,任何人执行这个文件时产生的进程都属于设定好的文件所有人
❗❗❗u上的s是冒险位 g上的s是强制位
❗❗❗vi编辑得时候 没做更改就退出时 q, wq ,x的区别
q-----------直接退出
wq---------会将文件重新写入磁盘,相当于用原来的覆盖原来的,相当于更改了文件
x------------如果文件更改了则保存再退出,如果没更改就直接退出
ACL
❗❗❗所有的ACL权限不能超过 mask的权限
例如;我给某个组一个rwx权限 但是mask只有rw
那么这个组实际上有的权限只有 rw
目前学到的命令
umask
下面是另外一个例子,假设这次u m a s k值为0 2 2:
- 文件的最大权限 rwx rwx rwx (777)
2 ) u m a s k值为0 2 2 --- -w- -w-
- 目录权限 rwx r-x r-x (755) 这就是目录创建缺省权限 (777-umask)
- 文件权限 rw- r-- r-- (644) 这就是文件创建缺省权限( 目录-111)
设置ACL规则赋予nfsnobody用户rwx权限。`[root@Server ~]# setfacl -m u:nfsnobody:rwx /var/share``