linux文件處理命令和用戶管理和權限管理

文件處理命令
用戶管理
權限管理

+ 1.列出當前系統上所有已經登錄的用戶的用戶名,注意:同一用戶登錄多次,則只顯示一次即可
“`
[root@localhost ~]# who |cut -d' ' -f1|sort|uniq
centos
root
“`
+ 2.取出最后登錄到當前系統的用戶的相關信息
“`
[root@localhost ~]# id `who |tail -1|cut -d' ' -f1`
uid=0(root) gid=0(root) groups=0(root)
“`
+ 3.取出當前系統上被用戶當做其默認shell的最多的那個shell
“`
[root@localhost ~]# cut -d':' -f7 /etc/passwd|sort|uniq -c|tr -s ' '|sort -n -t' ' -k2|tail -1|cut -d' ' -f3
/sbin/nologin
“`
+ 4.將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt中
“`
[root@localhost ~]# sort -n -t':' -k3 /etc/passwd|tail|tr 'a-z' 'A-Z' > /tmp/maxusers.txt
“`
+ 5.取出當前主機的ip地址,提示:對ifconfig命令的結果進行劃分
“`
[root@localhost ~]# ifconfig eth0|head -2|tail -1|tr -s ' '|cut -d':' -f2|cut -d ' ' -f1
192.168.1.108
“`
+ 6.列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中
“`
[root@localhost ~]# find /etc -name "*.conf" -exec basename {} \; | tr 'a-z' 'A-Z' > /tmp/etc.conf
“`
+ 7.顯示/var目錄下一級子目錄或文件的總個數
“`
[root@localhost ~]# find /var -maxdepth 1 | grep -v "^/var$" | wc -l
17
“`
+ 8.取出/etc/group文件中第三個字段數值最小的10個組的名字
“`
[root@localhost ~]# sort -n -t':' -k3 /etc/group|head|cut -d':' -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
“`
+ 9.將/etc/fstab和/etc/issue文件中的內容合并為同一個內容后保存至/tmp/etc.test文件中。
“`
[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
“`
+ 10.請總結描述用戶和組管理命令的使用方法并完成以下練習
? ? + 1.創建組distro,其GID為2016
? ? + 2.創建用戶mandriva,其ID號為1005,基本組為distro
? ? + 3.創建用戶mageia,其ID號為1100,家目錄為/home/linux
? ? + 4.給用戶mageia添加密碼,密碼為mageedu
? ? + 5.刪除mandriva,但保留其家目錄
? ? + 6.創建用戶slackware,其ID號為2002,基本組為distro,附加組為peguin
? ? + 7.修改slackware的默認shell為/bin/tcsh
? ? + 8.為用戶slackware新增附加組admins
#groupadd
+ 創建新組
+ groupadd 組名
+ -g GID 手動指定GID
+ -r 創建系統組
+ -p 指定組密碼
+ 安全上下文:進程以其發起者的身份運行,進程對文件的訪問權限取決于用戶的權限
+ 為了能夠讓后臺進程或服務進程以非管理員的身份運行(最小權限原則),通常創建多個不用登錄的系統用戶
“`
[root@localhost ~]# groupadd -r -g 306 mysql
[root@localhost ~]# tail -1 /etc/group
mysql:x:306:
“`
#groupmod
+ 修改組
+ -g GID 修改GID
+ -r 修改為系統組
+ -p 修改組密碼

+ -n 修改組名

#groupdel
+刪除組
“`
[root@localhost ~]# groupdel mysql
“`
#useradd
+ useradd 登錄名(默認同時創建同名同ID的私有組,創建郵箱/var/spool/mail/用戶名和家目錄/home/用戶名,shell為/bin/bash)
+ -u 指定UID
+ -g 指定基本組名(必須事先存在)
+ -c 添加注釋
+ -G 指定附加組名(多個以,隔開)
+ -d 指定家目錄(以指定路徑為家目錄路徑,復制/etc/skel并重命名實現,指定家目錄如果存在,則不會復制/etc/skel)
“`
[root@localhost ~]# ls -A /etc/skel
.bash_logout .bash_profile .bashrc
“`
+ -s 指定shell,列表存儲在/etc/shells文件
“`
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
“`
+ -r 創建系統用戶
+ -M 不創建家目錄
+ -D 更改默認 /etc/login.defs的選項 存儲在/etc/default/useradd中
#usermod
+ 修改用戶屬性
+ -u 修改GID
+ -g 修改基本組
+ -G 修改附加組,全覆蓋
+ -G -a 追加附加組
+ -c 修改注釋信息
+ -d 修改家目錄
+ -d -m 移動修改家目錄
+ -l 修改用戶名
+ -s 修改shell
+ -L 鎖定密碼
+ -U 解鎖密碼
#userdel
+ 默認不刪除家目錄
+ -r 刪除用戶時一并刪除家目錄和郵件目錄
“`
[root@localhost ~]# groupadd -r -g 306 mysql
[root@localhost ~]# useradd -r -g mysql -u 306 -M -s /sbin/nologin mysql
[root@localhost ~]# id mysql
uid=306(mysql) gid=306(mysql) groups=306(mysql)
[root@localhost ~]# userdel -r mysql
userdel: mysql mail spool (/var/spool/mail/mysql) not found
userdel: mysql home directory (/home/mysql) not found
“`
#passwd修改密碼
+ 直接passwd,修改自己的密碼
+ passwd USERNAME root可以修改其他用戶密碼
+ -l 鎖定密碼
+ -u 解鎖密碼
+ -d 刪除密碼
+ -n 最小期
+ -x 最大期
+ -w 警告期
+ -i 非活動寬限期
+ -e 過期
+ –stdin 非交互輸入密碼
“`
echo "hello" | passwd --stdin docker &> /dev/null
echo $?
“`
#gpasswd 修改組密碼和組管理
+ 不帶選項 為組添加密碼
+ -a 從組中添加用戶
+ -d 從組中刪除用戶
#newgrp 切換基本組
+ newgrp GROUPNAME 臨時切換基本組
+ newgrp – GROUPNAME 模擬重新登錄切換基本組
+ 如果用戶不屬于此組,則需要輸入組密碼
“`
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# gpasswd -a mysql root
Adding user mysql to group root
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# su - mysql
Last login: Sat May 19 22:14:58 CST 2018 on pts/0
[mysql@localhost ~]$ id
uid=1000(mysql) gid=1000(mysql) groups=1000(mysql),0(root)
[mysql@localhost ~]$ ll
total 4
-rw-rw-r-- 1 mysql mysql 5 May 19 22:15 a.txt
-rw-rw-r-- 1 mysql mysql 0 May 19 22:15 b.txt
[mysql@localhost ~]$ touch c.txt
[mysql@localhost ~]$ ls
a.txt b.txt c.txt
[mysql@localhost ~]$ ll
total 4
-rw-rw-r-- 1 mysql mysql 5 May 19 22:15 a.txt
-rw-rw-r-- 1 mysql mysql 0 May 19 22:15 b.txt
-rw-rw-r-- 1 mysql mysql 0 May 19 22:17 c.txt
[mysql@localhost ~]$ newgrp root
[mysql@localhost ~]$ id
uid=1000(mysql) gid=0(root) groups=0(root),1000(mysql)
[mysql@localhost ~]$ touch d.txt
[mysql@localhost ~]$ ll
total 4
-rw-rw-r-- 1 mysql mysql 5 May 19 22:15 a.txt
-rw-rw-r-- 1 mysql mysql 0 May 19 22:15 b.txt
-rw-rw-r-- 1 mysql mysql 0 May 19 22:17 c.txt
-rw-r--r-- 1 mysql root 0 May 19 22:17 d.txt
“`
#chage
+ 更改查看用戶密碼信息
+ -l查看信息
“`
[root@localhost ~]# chage -l root
Last password change : never
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
“`
#id 顯示用戶真實和有效id信息
+ -u UID
+ -g 基本GID
+ -G 所有GID
+ -n 僅顯示名稱
“`
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@localhost ~]# id -u
0
[root@localhost ~]# id -g
0
[root@localhost ~]# id -G
0
“`
#su 命令 switch user
+ su – 登錄式切換,重新讀取shell的環境變量,重新登錄
+ su 非登錄式切換
+ 管理員無密碼可以切換到其他任意用戶
+ 非管理員要給出目標用戶的密碼
+ su – 登錄名 -c ‘COMMAND’ 僅以指定用戶的身份運行此命令
“`
[root@localhost ~]# su - mysql -c 'id'
uid=1000(mysql) gid=1000(mysql) groups=1000(mysql)
“`
#其他命令
+ chsh 修改shell
+ chfn 修改finger信息
+ finger 用戶信息
+ whoami 當前登錄用戶
“`
[root@localhost ~]# whoami
root
“`
+ pwck 檢查/etc/passwd
+ grpck 檢查/etc/group
“`
[root@localhost ~]# pwck
user 'ftp': directory '/var/ftp' does not exist
pwck: no changes
[root@localhost ~]# grpck
“`
###第10題作業
+ 1.創建組distro,其GID為2016
“`
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# tail -1 /etc/group
distro:x:2016:
“`
+ 2.創建用戶mandriva,其ID號為1005,基本組為distro
“`
[root@localhost ~]# useradd -u 1005 -g distro mandirva
[root@localhost ~]# tail -1 /etc/passwd
mandirva:x:1005:2016::/home/mandirva:/bin/bash
“`
+ 3.創建用戶mageia,其ID號為1100,家目錄為/home/linux
“`
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
[root@localhost ~]# tail -1 /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
“`
+ 4.給用戶mageia添加密碼,密碼為mageedu
“`
[root@localhost ~]# echo "mageedu"|passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
“`
+ 5.刪除mandriva,但保留其家目錄
“`
[root@localhost ~]# userdel mandirva
[root@localhost ~]# ll -d /home/mandirva/
drwx------ 2 1005 distro 62 May 28 18:54 /home/mandirva/
“`
+ 6.創建用戶slackware,其ID號為2002,基本組為distro,附加組為peguin
“`
[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost ~]# tail -1 /etc/group
peguin:x:2017:slackware
[root@localhost ~]# tail -1 /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/bash
“`
+ 7.修改slackware的默認shell為/bin/tcsh
“`
[root@localhost ~]# yum -y install tcsh
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# grep "slackware" /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/tcsh
“`
+ 8.為用戶slackware新增附加組admins

“`

[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -a -G admins slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin),2018(admins)
“`

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/99664

(1)
徐魯川徐魯川
上一篇 2018-05-28 17:41
下一篇 2018-05-28

相關推薦

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-05-31 20:16

    很不錯。命令建議格式化一下。

欧美性久久久久