标签:linux 基本命令
1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
1.touch /etc/skel/test.txt # 在原目录下创建测试文件
2.cp -r /etc/skel /home/tuser1
3.ll /home/tuser1 #验证文件
4.chmod -R 700 /home/tuser1
chmod -R go-rwx /home/tuser1
5. ll -d /home/tuser1 #验证文件夹权限
6. ll /home/tuser1 #验证文件权限
2、编辑/etc/group文件,添加组hadoop。
groupadd hadoop
3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
1.echo "hadoop:x:509:601::/home/hadoop:/bin/bash">>/etc/passwd
2.cat /etc/passwd #验证
4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
1. cp /etc/skel /home/hadoop
2. chmod 700 /home/hadoop
3. ll -d /home/hadoop #验证
5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
1. chown -R hadoop.hadoop /home/hadoop/
2. ll -d /home/hadoop #验证
3. ll /home/hadoop #验证
6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
1. grep "^[Ss]" /proc/meminfo
2. sed -n ‘/^[Ss]/p‘ /proc/meminfo
3. awk ‘/^[Ss]/‘ /proc/meminfo
7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
grep -v ‘/sbin/nologin$‘ /etc/passwd
8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
grep ‘/bin/bash$‘ /etc/passwd
9、找出/etc/passwd文件中的一位数或两位数;
egrep "\<[0-9]\>|\<[0-9]{2}\>" /etc/passwd
10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
grep "^[[:space:]]\+" /boot/grub/grub.conf
egrep "^[[:space:]]+" /boot/grub/grub.conf
11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
egrep "^#[[:space:]]+[^[:space:]]+" /etc/rc.d/rc.sysinit
12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
netstat -tan|egrep "LISTEN[[:space:]]+$"
13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;
1. for user in bash testbash basher nologin;do id $user &>/dev/null || useradd $user; done;
2. id nologin && usermod -s /sbin/nologin
3. egrep "^([[:alnum:]]+)\>.*\1$" /etc/passwd
关于词首,词尾,锚定后向引用的一些体会
例子:添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息
正确语句:egrep "^([[:alnum:]]+)\>.*\1$" /etc/passwd
错误语句:egrep "^([[:alnum:]]+).*\1$" /etc/passwd
错误语句中 \1引用的可以是用户名字符串中任意长度的字符串,对nfsnobody来说,可以是n,nf,nfs........nfsnobody。因此该用户的shell只要是以n,nf,nfs...nfsnobody结尾都能被匹配。因此该语句得到了错误的结果。
正确语句加了词尾锚定符\>,因此\1引用到的只会是整个用户名nfsnobody,因为
egrep "^([[:alnum:]]+).*\1$" /etc/passwd 的结果如下
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
nobody:x:99:99:Nobody:/:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
nginx:x:500:500::/home/nginx:/sbin/nologin
hadoop:x:509:601::/home/hadoop:/bin/bash
bash:x:510:510::/home/bash:/bin/bash
basher:x:512:512::/home/basher:/bin/bash
nologin:x:513:513::/home/nologin:/sbin/nologin
note: 后向引用仅仅引用(pattern)中匹配到的字符串,而并非模式本身
标签:linux 基本命令
原文地址:http://dannniswu.blog.51cto.com/9846650/1842388