第三周作业

Linux用户与组管理实战
本文详细介绍Linux系统中用户和组管理类命令的使用方法,包括useradd、groupadd等命令的实际操作,以及如何批量创建用户、修改用户属性、设置密码策略等。通过具体实例,帮助读者掌握用户和组管理的技巧。


练习题1-3

显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录

[root@Centos7 ~]# touch /etc/3abc
[root@Centos7 ~]# mkdir /etc/2db8
[root@Centos7 ~]# ls /etc/[^[:alpha:]][[:alpha:]]*
/etc/3abc

/etc/2db8:

复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

mkdir /tmp/mytest1
cp -rv /etc/p*[^[:digit:]] /tmp/mytest1

将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

tr 'a-z' 'A-Z' < /etc/issue |tee -a /tmp/issue.out

练习题4

请总结描述用户和组管理类命令的使用方法并完成以下练习:

(1)、创建组distro,其GID为2019;

groupadd -g 2019 distro
getent group distro

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;

useradd -u 1005 -g distro mandriva
id mandriva

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

useradd -u 1100 -d /home/linux mageia
getent passwd mageia

(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期

echo mageedu|passwd --stdin mageia
passwd -x 7 mageia

(5)、删除mandriva,但保留其家目录;

 userdel mandriva

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

groupadd peguin
useradd -u 2002 -g distro -G peguin slackware

(7)、修改slackware的默认shell为/bin/tcsh;

usermod -s /bin/tcsh slackware
getent passwd slackware

(8)、为用户slackware新增附加组admins;

groupadd admins
usermod -aG admins slackware
id slackware

用户和组管理类命令

useradd添加用户

Usage: useradd [options] LOGIN
useradd -D
useradd -D [options]
options:
-g //指定用户主组
-G //指定用户的附加组
-M //不创建用户家目录,用于非系统用户
-m //创建用户家目录
-o //允许创建uid相同的用户
-r //创建系统用户
-s //指定用户的shell
-u //指定uid
-c //用户的注释信息
-d //家目录
-N //不创建私有组做主组,使用users组做主组
-D //显示默认设置 /etc/default/useradd
-D -s shell //修改默认的shell
-D -b home //修改默认的家目录
-D -g group //修改默认的组

newusers批量创建用户

newusers passwd格式的文件

chpasswd批量修改用户口令

chpasswd < user_pw.txt
user_pw.txt文件格式 username:passwd

usermod用户属性修改

Usage: usermod [options] LOGIN
-u 新的uid
-g 新主组
-G 新附加组(覆盖),-aG 新增附加组
-s shell
-c 注释
-d 家目录
-l 新登陆名
-L 锁定用户
-U unlock指定用户
-e YYYY-MM-DD 用户账号过期日期
-f 设定非活动期限

userdel 删除用户

Usage: userdel [options] LOGIN
-r 删除用户家目录

id 查看用户相关的信息

Usage: id [OPTION]… [USER]
-u 显示uid
-g 显示gid
-G 显示用户所属的组id
-n 显示名称 ,需要配合ugG使用

passwd 设置密码

Usage: passwd [OPTION…] accountName
-d 删除指定用户密码
-l 锁定指定用户
-u 解锁指定用户
-e 强制用户下次登陆修改密码
-f 强制操作
-n 指定最短使用期限天数
-x 指定最大使用期限天数
-w 提前多少天开始警告
-i 非活动期限
–stdin 从标准输入接收用户密码

chage 修改用户密码策略

Usage: chage [options] LOGIN
-d 最近一次密码设置日期
-E 账户过期时间
-I 过期多少天后,设定密码为失效状态
-l 显示账户年龄信息
-m 最小天数
-M 最大天数
-W 警告天数

chfn 注释信息

chfn [options] [username]

chsh 指定shell

chsh [options] [username]

finger 显示用户信息

finger username
-l //多行显示用户信息

groupadd 创建组

-g, --gid GID 指定组的gid
-r, --system 创建系统组

groupmod 修改组的属性

Usage: groupmod [options] GROUP
-n, --new-name NEW_GROUP 新的组名
-g, --gid GID 组的id

groupdel 删除组

Usage: groupdel [options] GROUP

gpasswd 更改组的密码

Usage: gpasswd [option] GROUP
-a --add USER
-d --delete USER
-A, --administrators ADMIN,…

newgrp 临时切换主组

Usage: newgrp [-] [group]
如果用户本不属于此组,则需要组密码

groupmems 更改和查看组成员

Usage: groupmems [options] [action]
options:
-g 更改为指定组,只有root才有权限
actions:
-a 指定用户加入组
-d 从组中删除用户
-p 从组中清除所有成员
-l 显示组成员列表

groups 查看用户所属组列表

Usage: groups [OPTION]… [USERNAME]…

⼤数据运维⽅向⾯试题 ⼤数据运维⽅向⾯试题 ⼀、基础题 1.请写出httphttps请求的区别,写出遇到过的响应状态码. ⼀、https协议需要到ca申请证书,⼀般免费证书很少,需要交费。 ⼆、http是超⽂本传输协议,信息是明⽂传输,https 则是具有安全性的ssl加密传输协议。 三、httphttps使⽤的是完全不同的连接⽅式,⽤ 的端⼝也不⼀样,前者是80,后者是443。 四、http的连接很简单,是⽆状态的;HTTPS协议是由SSL+HTTP协议构建的可进⾏加密传输、⾝份认证的⽹络协议,⽐http协议安全。 状态码常⽤: 301 永久重定向 403 服务器已经理解请求,但是拒绝执⾏ 404 页⾯丢失 500 服务器错误 2.请写出在linux系统上⾯搭建系统或者产品等⼤数据平台需要对系统进⾏哪些检查。 从稳定性说:需要检查集群中的每⼀台服务器的命令安装是否完善,环境变量是否配置完毕,每⼀台服务器的软件配置是否有问题。 扩展性: 能够快速扩展机器,横向扩展条件是否具备 3.请写出使⽤过的linux系统有哪些版本,如何查看系统信息?(发⾏版本,内核版本等信息)。 Centos 6.5 6.6 x64 1.查看发⾏版本命令:cat /etc/issue 2.查看内核版本: cat /proc/version 4.请使⽤命令在linux系统中创建⽤户test,⽤户为test1,⽤户⽬录 /test , 赋予sudo权限。 useradd -d /test -m test -g test1 -G root useradd 选项 ⽤户名 其中各选项含义如下: -c comment 指定⼀段注释性描述。 -d ⽬录 指定⽤户主⽬录,如果此⽬录不存在,则同时使⽤-m选项,可以创建主⽬录。 -g ⽤户 指定⽤户所属的⽤户。 -G ⽤户,⽤户 指定⽤户所属的附加。 -s Shell⽂件 指定⽤户的登录Shell。 -u ⽤户号 指定⽤户的⽤户号,如果同时有-o选项,则可以重复使⽤其他⽤户的标识号。 Sudo可以修改⽂件需要root⽤户 sudo的⼯作过程如下: 1,当⽤户执⾏sudo时,系统会主动寻找/etc/sudoers⽂件,判断该⽤户是否有执⾏sudo的权限 2,确认⽤户具有可执⾏sudo的权限后,让⽤户输⼊⽤户⾃⼰的密码确认 3,若密码输⼊成功,则开始执⾏sudo后续的命令 4,root执⾏sudo时不需要输⼊密码(eudoers⽂件中有配置root ALL=(ALL) ALL这样⼀条规则) 5,若欲切换的⾝份与执⾏者的⾝份相同,也不需要输⼊密码 5.写出最少3个监控系统指标的命令(如内存,CPU ,IO,磁盘等)。 看内存 :free 看cpu:more /proc/cpuinfo 看IO:iostat -x 10 看磁盘:fdisk -l 6.请⽤多种⽅式在linux系统中设置环境变量,指出各种⽅式的区别。 1、控制台中设置,不赞成这种⽅式,因为他只对当前的shell 起作⽤,换⼀个shell设置就⽆效了: $PATH="$PATH":/NEW_PATH (关闭 shell Path会还原为原来的path) 2、修改 /etc/profile ⽂件,如果你的计算机仅仅作为开发使⽤时推存使⽤这种⽅法,因为所有⽤户的shell都有权使⽤这个环境变量,可能会 给系统带来安全性问题。这⾥是针对所有的⽤户的,所有的shell 在/etc/profile的最下⾯添加: export PATH="$PATH:/NEW_PATH" 3、修改bashrc⽂件,这种⽅法更为安全,它可以把使⽤这些环境变量的权限控制到⽤户级别,这⾥是针对某⼀特定的⽤户,如果你需要给 某个⽤户权限使⽤这些环境变量,你只需要修改其个⼈⽤户主⽬录下的 .bashrc⽂件就可以了。 在下⾯添加: Export PATH="$PATH:/NEW_PATH" 7.请在linux系统中添加指定的定时任务。(每⽉1,15⽇,1,10点运⾏ /run.sh). * 1 ,10 1,15 * * sh /run.sh 8.编写个shell脚本将/data⽬录下⼤于100k的⽂件转移到 /tmp ⽬录下。 #! /bin/sh directory=/data/* filesize=0 for file in $directory do filesize=$(wc -c < $(basename $file)) if [ $filesize -gt 100*1024 ] then mv $(basename $file) /tmp fi done 9.请使⽤命令写出在linux系统中对于⽂件01.txt ,查找⾏内容包含"java"关键字,但不包含"bug"关键字的
<think>好的,我现在要解决用户的问题,寻找翁恺C语言课程第三周作业的相关内容或答案。首先,我需要理清用户的具体需求。用户提到已经看到了第二周作业的引用内容,现在需要第三周作业题目解答。但用户提供的引用内容里,引用的三个来源都是关于第二周作业、时间格式以及输入输出的例子,没有直接涉及第三周的内容。不过,可能需要根据已有的信息一般C语言课程的安排来推断第三周可能的内容。 首先,回顾用户提供的引用内容: - 引用[1]是一个C语言程序,判断三个输入中的不同情况,可能涉及条件语句的使用。 - 引用[2]是第二周作业的代码,处理整数反转的问题,例如输入123,输出321,这涉及取余整除操作。 - 引用[3]是关于时间格式的输出,要求两位数的小时、分钟、秒,可能需要格式化输出,如printf中使用%02d。 根据一般C语言课程的进度,第二周可能学习基本输入输出、变量、算术运算,第三周可能涉及更复杂的条件判断、循环结构,或者更深入的练习题目。例如,第三周作业可能包括判断语句、循环结构,或者更复杂的数值处理问题。 接下来,我需要查找翁恺C语言课程第三周作业的题目。但用户提供的引用中没有直接相关的信息。可能需要通过常见的题目类型来推测。例如,第三周作业可能涉及: 1. 时间转换:将秒转换为小时、分钟、秒,格式化输出,类似于引用[3]中的内容,但需要更详细的处理。 2. 成绩分级:根据输入的分数输出等级,如A、B、C等,使用条件判断。 3. 计算分段函数:例如,根据不同的输入范围计算不同的函数值。 4. 循环练习:如求数列的、阶乘,或者判断素数等,但第三周可能还未涉及循环,可能更偏向条件语句。 另外,根据引用[2]中的例子,第二周涉及整数处理,第三周可能继续类似的题目,但增加复杂度。例如,判断一个数是否为水仙花数,或者进行四则运算的计算器程序。 考虑到用户可能无法访问外部资源,我需要基于常见的C语言第三周作业题目来构造答案,确保符合引用中的格式要求,比如正确的LaTeX数学公式代码块。 现在,我需要织这些可能的题目,提供相应的解答示例,同时注意引用格式。例如,如果题目是关于时间转换,可以引用引用[3]中的格式要求。如果涉及条件判断,可以参考引用[1]中的代码结构。 需要注意的是,用户要求生成相关问题,所以可能需要根据推测的题目内容提出相关问题,例如优化方法、应用场景等。 总结步骤: 1. 推测翁恺C语言第三周可能的作业题目。 2. 为每个题目提供解答示例,符合C语言语法。 3. 确保代码格式正确,使用代码块。 4. 生成相关问题,帮助用户进一步理解。 5. 在回答中适当引用已有的引用内容,如时间格式化引用[3]。 可能的题目一:时间转换 题目要求输入总秒数,转换为hh:mm:ss格式,不足两位补零。例如输入3661,输出01:01:01。这可以引用[3]中的格式要求。 可能的题目二:成绩转换 输入一个百分制成绩,输出等级制,如90以上为A,80-89为B等,使用条件判断语句。 可能的题目三:四位数逆序 类似第二周的反转数字,但可能扩展到四位数,如输入1234,输出4321,处理方式类似引用[2],但需要调整位数。 可能的题目四:计算分段函数 例如,计算以下分段函数的值: 当x >= 0时,f(x) = x^0.5; 当x < 0时,f(x) = (x+1)^2 + 2x + 1/x; 需要注意输入x的处理条件判断。 针对这些推测的题目,我需要编写解答代码,确保正确性。例如: 题目一解答: ```c #include <stdio.h> int main() { int total; scanf("%d", &total); int hh = total / 3600; int mm = (total % 3600) / 60; int ss = total % 60; printf("%02d:%02d:%02d", hh, mm, ss); return 0; } ``` 这里引用了引用[3]中的格式要求,使用%02d来补零。 题目二解答: ```c #include <stdio.h> int main() { int score; scanf("%d", &score); if (score >= 90) { printf("A"); } else if (score >= 80) { p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值