首页 > 代码库 > Linux基础知识四

Linux基础知识四

1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

[root@controller ~]# cp -a /etc/skel /home/tuser1/
[root@controller ~]# chmod -R go-rwx /home/tuser1/

2、编辑/etc/group文件,添加组hadoop。

[root@controller ~]# echo "hadoop:x:3007:" >> /etc/group

3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。

[root@controller ~]# echo "hadoop:x:3007:3007::/home/hadoop:/sbin/nologin" >> /etc/passwd
[root@controller ~]# id hadoop
uid=3007(hadoop) gid=3007(hadoop) groups=3007(hadoop)

4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。

[root@controller ~]# cp -a /etc/skel /home/hadoop
[root@controller hadoop]# chmod -R go-rwx /home/hadoop

5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。

[root@controller hadoop]# chown -R hadoop:hadoop /home/hadoop
[root@controller hadoop]# ls -al
total 16
drwx------.  3 hadoop hadoop   74 Jun  8 22:35 .
drwxr-xr-x. 15 root   root   4096 Aug 28 10:44 ..
-rw-------.  1 hadoop hadoop   18 Nov 20  2015 .bash_logout
-rw-------.  1 hadoop hadoop  193 Nov 20  2015 .bash_profile
-rw-------.  1 hadoop hadoop  231 Nov 20  2015 .bashrc
drwx------.  4 hadoop hadoop   37 Jun  8 22:34 .mozilla

6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式。

[root@controller hadoop]# grep -i ‘^s‘ /proc/meminfo 
SwapCached:          204 kB
SwapTotal:        511996 kB
SwapFree:         496060 kB
Shmem:              3732 kB
Slab:              76928 kB
SReclaimable:      38064 kB
SUnreclaim:        38864 kB
[root@controller hadoop]# grep  ‘^[Ss]‘ /proc/meminfo 
SwapCached:          204 kB
SwapTotal:        511996 kB
SwapFree:         496060 kB
Shmem:              3732 kB
Slab:              76928 kB
SReclaimable:      38064 kB
SUnreclaim:        38864 kB

7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户。

[root@controller hadoop]# cat /etc/passwd | grep -v ":/sbin/nologin$"|cut -d: -f 1
root
sync
shutdown
halt
yanlibo
bob
distro
mandriva
test1
mageia
slackware
openstack
user1
user2

8、显示/etc/passwd文件中其默认shell为/bin/bash的用户。

[root@controller hadoop]# cat /etc/passwd | grep ":/bin/bash$"|cut -d: -f 1
root
yanlibo
bob
distro
mandriva
test1
mageia
slackware
openstack
user1
user2

9、找出/etc/passwd文件中的一位数或两位数。

[root@controller ~]# grep -oP "\b\d{1,2}\b" /etc/passwd
0
0
1
1
2
2
3
4
4
7
5
0
6
0
7
0
8
12
11
0
12
14
50
99
99
66
65
81
81
59
59
76
32
32
29
29
75
75
42
42
70
70
89
89
74
74
38
38
72
72

10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行(CentOS6)。

[root@centos ~]# grgrep -P "^\s+" /boot/grub/grub.conf
	root (hd0,0)
	kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/vg_centos-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_centos/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_centos/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
	initrd /initramfs-2.6.32-642.el6.x86_64.img

11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行(CentOS6)

[root@centos ~]# grep -P ‘^#\s+\S+‘ /etc/rc.d/rc.sysinit
# /etc/rc.d/rc.sysinit - run once at boot time
# Taken in part from Miquel van Smoorenburg‘s bcheckrc.
# Check SELinux status
# Print a text banner.
# Only read this once.
# Initialize hardware
# Set default affinity
# Load other user-defined modules
# Load modules (for backward compatibility with VARs)
# Configure kernel parameters
# Set the hostname.
# Sync waiting for storage.
# Device mapper & related initialization
# Start any MD RAID arrays that haven‘t been started yet
# Remount the root filesystem read-write.
# Clean up SELinux labels
# If relabeling, relabel mount points.
# Mount all other filesystems (except for NFS and /proc, which is already
# mounted). Contrary to standard usage,
# filesystems are NOT unmounted in single user mode.
# The ‘no‘ applies to all listed filesystem types. See mount(8).
# Check to see if a full relabel is needed
# Update quotas if necessary
# Initialize pseudo-random number generator
# Configure machine if necessary.
# Clean out /.
# Do we need (w|u)tmpx files? We don‘t set them up, but the sysadmin might...
# Clean up /var.
# Clean up utmp/wtmp
# Clean up various /tmp bits
# Make ICE directory
# Start up swapping.
# Set up binfmt_misc
# Boot time profiles. Yes, this should be somewhere else.
# Now that we have all of our basic modules loaded and the kernel going,
# let‘s dump the syslog ring somewhere so we can find it later
# create the crash indicator flag to warn on crashes, offer fsck with timeout
# Let rhgb know that we‘re leaving rc.sysinit

12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行。

[root@controller ~]# netstat -tan | grep -P "LISTEN\s*$"
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:631                 :::*                    LISTEN     
tcp6       0      0 ::1:6010                :::*                    LISTEN

13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息。

[root@controller ~]# useradd bash
[root@controller ~]# useradd testbash
[root@controller ~]# useradd basher
[root@controller ~]# useradd -s /sbin/nologin nologin
[root@controller ~]# grep -P "^(\w+):.*\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
bash:x:3008:3008::/home/bash:/bin/bash
nologin:x:3011:3011::/home/nologin:/sbin/nologin

本文出自 “水中的波仔” 博客,谢绝转载!

Linux基础知识四