Linux学习第二周
Posted 网工转运维
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习第二周相关的知识,希望对你有一定的参考价值。
文件通配符
文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件
通配符采用特定的符号,表示特定的含义,此符号称为meta字符
Linux系统中定义的字符类:
[:digit:] 任意数字,相当于0-9
[:lower:] 任意小写字母,表示a-z
[:upper:] 任意大写字母,表示A-Z
[:alpha:] 任意大小写字母 常用,记
[:alnum:] 任意数字或字母 常用,记
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[:punct:] 标点符号
[:print:] 可打印字符
[:cntrl:] 控制(非打印)字符
[:graph:] 图形字符
[:xdigit:] 十六进制字符
复制文件和目录(cp命令)
利用cp 命令可以实现文件或目录的复制(往往用于备份)
格式:
cp [OPTION]... [-T] SOURCE DEST 复制一个文件到目标改名
cp [OPTION]... SOURCE... DIRECTORY ...表示多个源,多个源只能复制到文件夹下
cp [OPTION]...-t DIRECTORY SOURCE... 与第二种相反,需要-t,很少用
常用选项:
-i 如果目标已存在,覆盖前提问是否覆盖
-n 不覆盖,注意两者顺序
-r,-R递归复制目录及内部的所有内容。
tr命令
tr转换和删除字符
格式
tr [OPTION]... SRT1 [SET2]
用户和组管理
用户
Linux中每个用户是通过User ID(UID)来唯一标识的
- 管理员:root , 0
- 普通用户:1-60000 自动分配
- 系统用户:1-499(CentOS6以前),1-999(CentOS7以后)
- 登录用户:500+(CentOS6以前),1000+(CentOS7以后)
用户管理命令:
useradd 创建账号,默认没有密码
usermod 修改账号
userdel 删除账号
userdel可以删除Linux用户,常规是指删除账号,保留数据
常见选项:
-f, --force 强制
-r,--remove 删除用户家目录和邮箱
用户组
Linux中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GID)来唯一标识的
- 管理员组: root ,0
- 普通组
- 系统组:1-499(CentOS6以前),1-999(CentOS7以后)
- 用户组:500+(CentOS6以前),1000+(CentOS7以后)
组管理命令:
groupadd 创建组
groupmod 修改组
groupdel 删除组
用户和组的主要配置文件
通过4个文件存储用户的账号密码
- /etc/passwd:用户及其属性信息(用户名、UID主组ID,家目录,shell类型)
- /etc/shadow:用户密码及其相关属性(有效期等信息)
- /etc/group:组及其属性信息
- /etc/gshadow:组密码及相关信息
通过passwd可以修改用户的密码,密码存在shadow文件内
passwd[OPTION] UserName
常用选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n mindays:指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码,Ubuntu无此选项
修改用户密码策略
chage可以修改用户密码策略
格式:
chage [OPTION]... LOGIN
常用选项:
-d LAST_DAY #更改密码的时间
-m --mindays MIN_DAYS #密码最小期限(密码修改后保持几天)
-M --maxdays MAX_DAYS #密码的最大期限(几天后密码过期)
-W --warndays WARN_DAYS #密码过期前多少天告警
-I --inactive INACTIVE #密码过期后的宽限期
-E --expiredate EXPIRE_DATE #用户的有效期
-l 显示密码策略
文件权限管理
设置文件所有者chown
chown命令可以修改文件的属主,也可以修改文件属组
格式:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
用法说明:
OWNER #只修改所有者
OWNER:GROUP #同时修改所有者和属组
:GROUP #只修改属组,冒号也可用.替换
--reference=RFILE #参考指定的属性,来修改
-R #递归,此选项慎用,非常危险!
设定文件特殊属性,约束root误操作
设置文件的特殊属性,可以防止root用户误操作删除或修改的文件。如果文件夹内有特殊属性文件,rm -f无法情况文件夹会报错。
不能删除,改名,更改
chattr +i file
chattr -i file 删除特殊属性i
只能追加内容,不能删除,改名
chattr +a file
chattr -a file 删除特殊属性a
显示特定属性
lsattr
访问控制列表ACL
Access control list实现灵活的权限管理
除了文件所有者,所属组和其他人,可以对更多的用户设置权限
ACL相关命令
setfacl 设置ACL权限
getfacl 查看设置的ACL权限
setfacl -m u:user:rwx file| directory
作业:
1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
ls -d /etc/[[:digit:]][[:alnum:]]*
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
mkdir /tmp/mytest1/
cp -r /etc/p[[:alpha:]]* /tmp/mytest1/
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
touch /tmp/issue.out
tr a-z A-Z < /etc/issue > /tmp/issue.out
[root@Centos8 tmp]# cat /tmp/issue.out
\\S
KERNEL \\R ON AN \\M
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2019;
groupadd -g 2019 distro
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
useradd -u 1005 -g distro mandriva
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux mageia
id mageia
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
passwd mageia
Changing password for user mageia.
New password: mageedu
Retype new password: mageedu
passwd: all authentication tokens updated successfully.
passwd -x 7 mageia
getent shadow mage
mage:$6$pwnDWyCgT68NY0ht$4lqIzZ5Qecy7Ss5hYDJ2DH9KFOf77YeBE0kSMnKDY7cBK9xIefNV8VUahDWyoVR8JdTCtZoIFnObvlsDfjW3./:19110:0:99999:7:::
(5)、删除mandriva,但保留其家目录;
userdel mandriva
id mandriva
id: ‘mandriva’: no such user
ll /home
drwx------. 3 mandriva distro 78 May 4 20:23 mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
groupadd peguin
useradd -u 2002 -g dostro -G peguin slackware
(7)、修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware
(8)、为用户slackware新增附加组admins,并设置不可登陆。
groupadd admins
usermod -G admins -s /sbin/nologin slackware
5、创建用户user1、user2、user3。在/data/下创建目录test
useradd user1
useradd user2
useradd user3
mkdir /data/test/
(1)、目录/data/test属主、属组为user1
chown user1:user1 /data/test/
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
setfacl -m u:user2:rw /data/test/
(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除a1.sh,a2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
su - user1
touch /data/test/a1..4.sh
chattr +i a1.sh
chattr +i a2.sh
[root@Centos8 test]# lsattr
----i--------------- ./a1.sh
----i--------------- ./a2.sh
-------------------- ./a3.sh
-------------------- ./a4.sh
chmod 000 a3.sh
chmod 000 a4.sh
root和user1可以对a3,a4.sh文件进行删除
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
usermod -G user1 user3
chmod g 640 /data/test
[root@Centos8 ~]# su - user3
[user3@Centos8 ~]$ cd /data/test/
-bash: cd: /data/test/: Permission denied
(5)、清理/data/test目录及其下所有文件的acl权限
setfacl -b /data/test
以上是关于Linux学习第二周的主要内容,如果未能解决你的问题,请参考以下文章