来源:
第四章
笔记:
- 文件管理命令:cp,mv,rm
cp:
cp sfile dfile
cp sfile1 sfile2 。。。 ddir
cp sdir ddir
-i:交互模式
-r,R:递归复制目录及目录下的文件
-a:归档,相当于-dr,--preserve=all
-t:指定要复制的目标,可省
-p:相当于--preserve=ownership,mode,timestamp
-v:verbose
mv:命令格式同cp
当源为目录时:
sdir或sdir/:表示递归复制目录(含目录);
sdir/*:表示复制目录内的所有文件(不含目录);
当目标为目录时:
ddir:表示复制文件到ddir目录下,或复制目录为ddir
ddir/:表示复制文件到ddir目录下,或复制目录到ddir目录下
rm:
-r:递归删除,删目录
-f:强制
- 文本处理工具:wc、cut、sort、uniq
cut:
-d DELIMITER:指定分隔符
-f FIELD:指定字段:
1;1,3,7;1-3;1-3,7;-3;3-
-s:仅显示包含指定分隔符的行
--output-delimiter=DELIMITER
sort:
-f:忽略大小写;
-r:逆序;
-t:指定分隔符;
-k:指定字段;
-n:按数字大小排序,默认按assic码排序;
-u:排序后去重;
uniq:不排序,仅处理重复项
note:连续且相同才为相同
-c:在每行前显示重复次数;
-d:仅显示重复项;
-u:仅显示唯一项;
- 用户和组管理:
用户ID:
CentOS 6:
管理员:root,0
普通用户:1-65535
系统用户:1-499,守护进程资源分配权限;
登录用户:500+,系统交互登录;
CentOS 7:
管理员:root,0
普通用户:1-65535
系统用户:1-1000;
登录用户:1000+;
安全上下文:
进程的权限取决于进程发起者的权限而非进程的程序文件本身的权限;
Linux组的类别:
基本组(主组):组名一般同用户名(未特别指明下),仅包含此用户,私有组;
附加组(额外组);
用户和组的配置文件位置:
/etc/passwd:
#man 5 passwd
/etc/group:
#man group
/etc/shadow:
#man 5 shadow
/etc/gshadow:
密码复杂策略:
1、数字、大小写字母、特殊符号至少三种;
2、足够长;
3、使用随机密码;
4、定期更换密码;
- 用户和组管理命令:
useradd:创建用户
-D:默认项,/etc/login.defs
-d:指定或修改用户家目录(目录存在时,将不会复制/etc/skel下的用户家目录配置文件)
-c:注释信息
-g:基本组 (组必须事先存在)
-G:附加组,可为多个(组必须事先存在)
-s:指定默认shell
-r:创建为系统账户
-u:指定uid;
groupadd:创建组:
-r:系统组;
-g:指定gid;
id:显示用户信息
-u:uid
-g:gid
-G:gids
-n:显示名称而非id
su:切换用户
su username:非登录式切换
su - username:登录式切换,读取指定用户环境配置文件
su username -c COMMAND:以指定用户身份运行命令(不读取用户环境变量)
su - username -c COMMAND:以指定用户身份运行命令(读取用户环境变量);
用户和组属性修改:usermod、groupmod
usermod:
-u :新uid
-g:新基本组
-G:新附加组(覆盖),若要追加,同时使用-a选项;
-s:新shell;
-c:新注释信息;
-d:新家目录(原家目录文件不移动),同时使用-m选项,移动原有家目录下文件到新目录;
tip:使用m选项时,如果指定目录已存在,文件会复制失败;指定目录事先不存在,
则文件复制成功;
-l:新登录名
-L:lock指定用户(即在/etc/passwd文件中用户密码段前加“!”)
-U:unlock指定用户;
groupmod:修改组名和ID
-n:新组名;
-g:新id
groupdel:删除组
newgrp:切换当前shell登录用户的基本组
gpasswd:管理组(/etc/group和/etc/gshadow文件)
-a:向组中添加用户;
-d:从组中移除用户;
-r:删除组密码;
-R:限制非组成员访问;
-A:设置有管理权限的用户列表;
-M:设置组成员列表;
组密码的作用:不属于组成员的用户使用newgrp切换基本组时需输入密码;
chage:更改用户密码过期信息
chfn:更改用户finger信息
chsh:更改用户登录shell
- 文件权限管理:u,g,o;r,w,x;
文件:
r:获取文件内容;
w:可修改文件内容(删除或创建的权限取决于目录的w权限而非文件本身的w权限);
x:可把文件提交内核启动为进程;
目录:
r:可读取目录下文件或目录的名称(仅文件名);
w:对当前目录有创建和删除文件或目录的权限(当前目录下的子目录不空且用户无权限时,该子
目录无法删除)
x:可进入此目录;“ll”可列出目录下文件的详细信息(权限、属组、属主等)
chmod:修改权限
Tip:用户对有写权限的目录下的无写权限的文件强行写保存时,文件属主属组变更为新用户(可
以这样理解:一般用户对文件有读权限,当用户对目录有写权限时,可以读出原文件内容,录入
用户新创建的文件中保存,再删除原文件)
用户仅有写权限无法进行目录下创建和删除动作,还需要有执行权限;
-R:递归修改
--reference=file:参照指定文件修改权限;
mode:###;(a|u|g|o)(+=-)(rwx)
640;
u+r;
a+r;
o=;
chown:修改属主属组
-R:递归修改;
--reference=file:参照指定文件修改;
:group ;
owner:group;
owner: ;
.group ;
owner.group;
owner. ;
chgrp:修改属组
-R:递归修改
- Linux文件系统上的特殊权限:suid,sgid,sticky:
1、安全上下文:
进程发起前,检查用户对此程序文件是否有执行权限;
进程发起后,进程的属主为进程的发起者,而非进程程序文件的属主;
进程对另一个文件进行操作时,检查进程的属主是否具有对象文件相应的操作权限;
2、suid:
进程程序文件具有此权限时,进程发起后,进程的属主为进程程序文件的属主;
chmod u+s ;chmod u-s
3、sgid:
当目录具有此权限时,对此目录拥有写权限的用户在此目录下创建的文件或目录
其属组不是用户当前的基本组,而是目录的属组;
chmod g+s;chmod g-s mod
4、sticky:
对一个多人可写的目录设置此权限后,则每个用户只能删除自己创建的文件
chmod o+t;chmod o-t
5、suid,sgid,sticky权限数字表示法:
每位权限由0、1表示,有7种变化,用一个8进制数即可表示:
suid:4
sgid:2
sticky:1
例,chmod 3664 dir:目录具有sgid和sticky权限
6、权限位映射:
suid:占据user的执行权限位
s:原权限位user拥有执行权限;
S:原权限位user没有执行权限;
sgid:占据group的执行权限位;
s:原权限位group有执行权限;
S:原权限位group无执行权限;
sticky:占据other的执行权限位;
t:原权限位other有执行权限;
T:原权限位other无执行权限;
- 文件或目录创建时的遮罩码:umask
file:666-umask
tip:如果减后结果文件出现x权限,则将其对应位置权限+1;
dir:777-umask
umask:显示当前shell的umask值;
umask #:设定当前shell的umask值;
- Tip:
source file:bash进程重新读取配置文件;
command:tr、tee、id、finger、useradd、groupadd、groupdel、su、passwd、userdel、
gpasswd、newgrp、pwck、chage、chfn、chsh、chmod、chown,chgrp
数据特征码提取:md5sum(128bits)、sha1sum(160bits)sha224sum(224bits)、
sha256sum(256bits)、sha384sum(384bits)、sha512sum(512bits);
雪崩效应;
/dev/null;/dev/zero;
备忘:
1、CentOS如何安装适用的硬件驱动?
2、sgid,sticky和用户共享组?
解:sticky,一组用户对某目录都有写权限时,可以在此目录下创建、修改和删除自己创建的文件
或目录,不能删除他人的文件或目录;对其他用户文件或目录的写操作取决于文件本身
的权限设置。(设置sticky权限时,先设置该组用户的附加组为目录的属组,并修改属
组权限为rwx)
sgid,用户在目录下创建文件或目录时,属组为目录的属组(即所有对此目录有写权限的
用户的共同附加组之一),目录下的文件不具私密性和安全性,所有对此目录有写权限的
用户可强行修改、删除、创建。一般不使用(设置sgid时,设置用户的附加组为目录属组
,设置目录属组权限为rwx)
共享组,同上,不同的是:文件属组为用户自身属组。
3、例:/root/test目录为755,但本机非root组用户不能对该目录进行访问
解;仅看test目录,其他用户组是对其具有rx权限的
但猜想系统的权限判断是由上至下逐级判断的,由于其他用户/root目录
无任何权限,所有其他用户虽然有test目录的权限,但仍然无法访问test