llinux_2
1、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
[root@lhq ~]#ls /etc/ | grep "^[^[:alpha:]][[:alpha:]].*$"
2、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
- 先列举出来符合要求的文件或目录
#ls /etc/ |grep "^p.*[^0-9]$" - 搭配xargs传参给cp
xargs -i cp -r {} /tmp/mytest1/
相对路径:
[root@lhq etc]#ls /etc/ |grep "^p.*[^0-9]$" |xargs -i cp -r {} /tmp/mytest1/
绝对路径:
[root@lhq ~]#mkdir /tmp/mytest1
[root@lhq etc]#ls /etc/ |grep "^p.*[^0-9]$" |xargs -i cp -r /etc/{} /tmp/mytest1/
3、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[root@lhq ~]#cat /etc/issue | tr "a-z" “A-Z” > /tmp/issue.out
[root@lhq ~]#cat /tmp/issue.out
\S
KBOKBI \O LK በ\J
4、请总结描述用户和组管理类命令的使用方法并完成以下练习:
(1)、创建组distro,其GID为2019;
[root@lhq ~]#groupadd -g 2019 distro
//检验
[root@lhq ~]#cat /etc/group |tail -1
distro:x:2019:
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@lhq ~]#useradd -u 1016 -g distro mandriva
//检验
[root@lhq ~]#id 1016
uid=1016(mandriva) gid=2019(distro) groups=2019(distro)
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@lhq ~]#useradd -u 1100 -d /home/linux mageia
//检验
[root@lhq ~]#cat /etc/passwd |tail -1
mageia:x:1100:1100::/home/linux:/bin/bash
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@lhq ~]#echo mageedu | passwd --stdin mageia | passwd mageia -x 7
Adjusting aging data for user mageia.
passwd: Success
#检验
[root@lhq ~]#cat /etc/shadow |tail -1
mageia:$1$WN/qMbtO$a3ZTk8PLPuEFdeucNrU3E1:18872:0:7:7:::
(5)、删除mandriva,但保留其家目录;
# 查看家目录
[root@lhq ~]#ll /home |grep mandriva
drwx------. 3 mandriva distro 78 Sep 2 10:18 mandriva
#删用户mandriva
[root@lhq ~]#userdel mandriva
# 查看家目录
[root@lhq ~]#ll /home |grep mandriva
drwx------. 3 mandriva distro 78 Sep 2 10:18 mandriva
#结论
userdel不做删除家目录操作
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@lhq ~]#useradd -u 2002 -g distro -G peguin slackware
[root@lhq ~]#id 2002
uid=2002(slackware) gid=2019(distro) groups=2019(distro),2020(peguin)
(7)、修改slackware的默认shell为/bin/tcsh;
[root@lhq ~]#usermod -s /bin/tcsh slackware
#检验
[root@lhq ~]#cat /etc/passwd |tail -1
slackwate:x:2002:2019::/home/slackware:/bin/tcsh
(8)、为用户slackware新增附加组admins,并设置不可登陆。
[root@lhq ~]#groupadd admins
[root@lhq ~]#usermod -aG admins -s /bin/nologin slackwate
5、创建用户user1、user2、user3。在/data/下创建目录test
[root@lhq ~]mkdir /date/test/
[root@lhq ~]useradd user1;useradd useradd user2;useradd user3
(1)、目录/data/test属主、属组为user1
[root@lhq ~]#chown user1:user1 /date/test
(2)、在目录属主、属组不变的情况下,user2对文件有读写权限
[root@lhq ~]#setfacl -m u:user2:rw- /date/test
#检验
[root@lhq ~]#getfacl /date/test
getfacl: Removing leading '/' from absolute path names
# file: date/test
# owner: user1
# group: user1
user::rwx
user:user2:rw-
group::r-x
mask::rwx
other::r-x
(3)、user1在/data/test目录下创建文件a1.sh, a2.sh, a3.sh, a4.sh,设置所有用户都不可删除1.sh,2.sh文件、除了user1及root之外,所有用户都不可删除a3.sh, a4.sh
[root@lhq ~]#touch /date/test/a{1..4}.sh
[root@lhq test]#cd /date/test
[root@lhq test]#chattr +i a1.sh a2.sh
[root@lhq ~]#chmod 755 /date/test
(4)、user3增加附加组user1,同时要求user1不能访问/data/test目录及其下所有文件
[root@lhq ~]#usermod -aG user1 user3
[root@lhq ~]#chmod u-x /data/test
(5)、清理/data/test目录及其下所有文件的acl权限
[root@lhq ~]setfacl -b /data/test
llinux_2的更多相关文章
随机推荐
- MYSQL 自定义序列函数
代码如下: DROP TABLE SEQNUM; -- 创建序列表 CREATE TABLE SEQNUM( ID BIGINT ); -- 插入初识值 insert INTO SEQNUM valu ...
- Vue - 问题集、知识点
通信:父组件 -> 子组件 父组件 <!--这里需要用v-bind来绑定data中的fontsize,否则传过去的只是一个字符串"fontsize"--> < ...
- C# 开源一个基于 yarp 的 API 网关 Demo,支持绑定 Kubernetes Service
关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 ...
- 信息收集&Fuzz
本文译自https://0xjoyghosh.medium.com/information-gathering-scanning-for-sensitive-information-reloaded- ...
- Go Error 嵌套到底是怎么实现的?
原文链接: Go Error 嵌套到底是怎么实现的? Go Error 的设计哲学是 「Errors Are Values」. 这句话应该怎么理解呢?翻译起来挺难的.不过从源码的角度来看,好像更容易理 ...
- 【Java】Super
Super super用于调用父类的属性.方法.构造器,与this相同. super的使用 属性与方法 在子类的方法或构造器中.通过使用"super.属性"或"super ...
- 听不懂x86,arm?
之前听别人讲x86或者ARM,我心里有一些疑惑,为什么他们不考虑32位还是64位的? 直到和师傅交流了一下: I:32位机是不是不支持部署k3os? T:这个年头哪里还有32位机? T:现在说x86, ...
- 我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 记录未解决的问题:docker中无法启动mysqld
首先在docker中安装mysql server的包: sudo yum install mysql sudo yum install mariadb-server mariadb /usr/libe ...
- 【记录一个问题】android opencl c++: 使用event.SetCallBack()方法后,在回调函数中要再使用event.wait()才能得到profile信息
如题:希望执行完成后得到各个阶段的执行时间,但是通过回调发现start, end, submit, queued等时间都是0 因此要在回调函数中再使用一次event.wait(),然后才能获得prof ...