轉載請註明本網站 http://www.soacme.com/ php
Linux 系統是一個多用戶多任務的分時操做系統,任何一個要使用系統資源的用戶,都必須首先向系統管理員申請一個帳號,而後以這個帳號的身份進入系統。用戶的帳號一方面能夠幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另外一方面也能夠幫助用戶組織文件,併爲用戶提供安全性保護。每一個用戶帳號都擁有一個唯一的用戶名和各自的密碼。用戶在登陸時鍵入正確的用戶名和密碼後,就可以進入系統和本身的主目錄。linux
實現用戶帳號的管理,要完成的工做主要有以下幾個方面:nginx
用戶帳號的添加、刪除與修改。shell
用戶密碼的管理。安全
用戶組的管理。bash
1、Linux系統用戶帳號的管理 編輯器
用戶帳號的管理工做主要涉及到用戶帳號的添加、修改和刪除。工具
添加用戶帳號就是在系統中建立一個新帳號,而後爲新帳號分配用戶號、用戶組、主目錄和登陸Shell等資源。剛添加的帳號是被鎖定的,沒法使用。oop
一、添加新的用戶帳號使用 useradd 命令,其語法以下:post
useradd 選項 用戶名
其中各選項含義以下:
-c comment 指定一段註釋性描述。
-d 目錄 指定用戶主目錄,若是此目錄不存在,則同時使用-m選項,能夠建立主目錄。
-g 用戶組 指定用戶所屬的用戶組。
-G 用戶組,用戶組 指定用戶所屬的附加組。
-s Shell文件 指定用戶的登陸Shell。
-u 用戶號 指定用戶的用戶號,若是同時有-o選項,則能夠重複使用其餘用戶的標識號。
用戶名 指定新帳號的登陸名。
例1:
# useradd –d /usr/sam -m sam
此命令建立了一個用戶sam,
其中-d和-m選項用來爲登陸名sam產生一個主目錄/usr/sam(/usr爲默認的用戶主目錄所在的父目錄)。
例2:
# useradd -s /bin/sh -g group –G adm,root gem
此命令新建了一個用戶gem,該用戶的登陸Shell是/bin/sh,它屬於group用戶組,同時又屬於adm和root用戶組,其中group用戶組是其主組。
這裏可能新建組:
#groupadd group 及 groupadd adm
增長用戶帳號就是在 /etc/passwd 文件中爲新用戶增長一條記錄,同時更新其餘系統文件如 /etc/shadow, /etc/group等。
Linux提供了集成的系統管理工具userconf,它能夠用來對用戶帳號進行統一管理。
二、刪除賬號
若是一個用戶的帳號再也不使用,能夠從系統中刪除。刪除用戶帳號就是要將/etc/passwd等系統文件中的該用戶記錄刪除,必要時還刪除用戶的主目錄。刪除一個已有的用戶帳號使用userdel命令,其格式以下:
userdel 選項 用戶名
經常使用的選項是 -r,它的做用是把用戶的主目錄一塊兒刪除。
例如:
# userdel sam
此命令刪除用戶sam在系統文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的記錄,同時刪除用戶的主目錄。
三、修改賬號
修改用戶帳號就是根據實際狀況更改用戶的有關屬性,如用戶號、主目錄、用戶組、登陸Shell等。
修改已有用戶的信息使用usermod命令,其格式以下:
usermod 選項 用戶名
經常使用的選項包括-c, -d, -m, -g, -G, -s, -u以及-o等,這些選項的意義與useradd命令中的選項同樣,能夠爲用戶指定新的資源值。另外,有些系統可使用以下選項:
-l 新用戶名
這個選項指定一個新的帳號,即將原來的用戶名改成新的用戶名。
例如:
# usermod -s /bin/ksh -d /home/z –g developer sam
此命令將用戶sam的登陸Shell修改成ksh,主目錄改成/home/z,用戶組改成developer。
四、用戶密碼的管理
用戶管理的一項重要內容是用戶密碼的管理。用戶帳號剛建立時沒有密碼,可是被系統鎖定,沒法使用,必須爲其指定密碼後纔可使用,即便是指定空密碼。
指定和修改用戶密碼的Shell命令是passwd。超級用戶能夠爲本身和其餘用戶指定密碼,普通用戶只能用它修改本身的密碼。命令的格式爲:
passwd 選項 用戶名
可以使用的選項:
-l 鎖定密碼,即禁用帳號。
-u 密碼解鎖。
-d 使帳號無密碼。
-f 強迫用戶下次登陸時修改密碼。
若是默認用戶名,則修改當前用戶的密碼。
例如,假設當前用戶是sam,則下面的命令修改該用戶本身的密碼:
$ passwd
Old password:******
New password:*******
Re-enter new password:*******
若是是超級用戶,能夠用下列形式指定任何用戶的密碼:
# passwd sam
New password:*******
Re-enter new password:*******
普通用戶修改本身的密碼時,passwd命令會先詢問原密碼,驗證後再要求用戶輸入兩遍新密碼,若是兩次輸入的密碼一致,則將這個密碼指定給用戶;而超級用戶爲用戶指定密碼時,就不須要知道原密碼。
爲了系統安全起見,用戶應該選擇比較複雜的密碼,例如最好使用8位長的密碼,密碼中包含有大寫、小寫字母和數字,而且應該與姓名、生日等不相同。
爲用戶指定空密碼時,執行下列形式的命令:
# passwd -d sam
此命令將用戶sam的密碼刪除,這樣用戶sam下一次登陸時,系統就再也不詢問密碼。
passwd命令還能夠用-l(lock)選項鎖定某一用戶,使其不能登陸,例如:
# passwd -l sam
新建用戶異常:
useradd -d /usr/hadoop -u 586 -m hadoop -g hadoop
1 Creating mailbox file: 文件已存在
刪除便可 rm -rf /var/spool/mail/用戶名
2 useradd: invalid numeric argument 'hadoop'
這是因爲hadoop組不存在 請先建hadoop組
經過cat /etc/passwd 能夠查看用戶的pass
cat /etc/shadow 能夠查看用戶名
cat /etc/group 能夠查看 組
2、Linux系統用戶組的管理
每一個用戶都有一個用戶組,系統能夠對一個用戶組中的全部用戶進行集中管理。不一樣Linux 系統對用戶組的規定有所不一樣,如Linux下的用戶屬於與它同名的用戶組,這個用戶組在建立用戶時同時建立。
用戶組的管理涉及用戶組的添加、刪除和修改。組的增長、刪除和修改實際上就是對/etc/group文件的更新。
一、增長一個新的用戶組使用groupadd命令。 其格式以下:
groupadd 選項 用戶組
可使用的選項有:
-g GID 指定新用戶組的組標識號(GID)。
-o 通常與-g選項同時使用,表示新用戶組的GID能夠與系統已有用戶組的GID相同。
例1:
# groupadd group1
此命令向系統中增長了一個新組group1,新組的組標識號是在當前已有的最大組標識號的基礎上加1。
例2:
#groupadd -g 101 group2
此命令向系統中增長了一個新組group2,同時指定新組的組標識號是101。
二、若是要刪除一個已有的用戶組,使用groupdel命令, 其格式以下:
groupdel 用戶組
例如:
#groupdel group1
此命令從系統中刪除組group1。
三、修改用戶組的屬性使用groupmod命令。 其語法以下:
groupmod 選項 用戶組
經常使用的選項有:
-g GID 爲用戶組指定新的組標識號。
-o 與-g選項同時使用,用戶組的新GID能夠與系統已有用戶組的GID相同。
-n新用戶組 將用戶組的名字改成新名字
例1:
# groupmod -g 102 group2
此命令將組group2的組標識號修改成102。
例2:
# groupmod –g 10000 -n group3 group2
此命令將組group2的標識號改成10000,組名修改成group3。
四、若是一個用戶同時屬於多個用戶組,那麼用戶能夠在用戶組之間切換,以便具備其餘用戶組的權限。用戶能夠在登陸後,使用命令newgrp切換到其餘用戶組,這個命令的參數就是目的用戶組。
例如:
$ newgrp root
這條命令將當前用戶切換到root用戶組,前提條件是root用戶組確實是該用戶的主組或附加組。相似於用戶帳號的管理,用戶組的管理也能夠經過集成的系統管理工具來完成。
權限分配
分配權限
chown -R hadoop:hadoop /usr/hadoop/
讓普通用戶擁有root的權限
1.root登陸
2.adduser 用戶名
3.passwd 用戶名
肯定密碼
4.修改/etc/passwd便可,把用戶名的ID和ID組修改爲0。
新建用戶,且不讓用戶直接登陸:
1 |
#添加nginx用戶組及用戶 |
2 |
groupadd www |
3 |
useradd -g www -s /usr/sbin/nologin www #不讓www用戶直接登陸 |
強行設置某個用戶所在組
usermod -g 用戶組 用戶名
把某個用戶改成 group(s)
usermod -G 用戶組 用戶名
把用戶添加進入某個組(s),注意:原來的用戶組還存在
usermod -a -G 用戶組 用戶名
usermod使用說明:
修改用戶賬號
語 法:usermod [-LU][-c <備註>][-d <登入目錄>][-e <有效期限>][-f <緩衝天數>][-g <羣組>][-G <羣組>][-l <賬號名稱>][-s][-u][用戶賬號]
補充說明:usermod可用來修改用戶賬號的各項設定。
參 數:
-c<備註> 修改用戶賬號的備註文字。
-d登入目錄> 修改用戶登入時的目錄。
-e<有效期限> 修改賬號的有效期限。
-f<緩衝天數> 修改在密碼過時後多少天即關閉該賬號。
-g<羣組> 修改用戶所屬的羣組。
-G<羣組> 修改用戶所屬的附加羣組。
-l<賬號名稱> 修改用戶賬號名稱。
-L 鎖定用戶密碼,使密碼無效。
-s 修改用戶登入後所使用的shell。
-u 修改用戶ID。
-U 解除密碼鎖定。
//重啓nginx
/etc/init.d/nginx restart
//重啓ftp
/etc/init.d/vsftpd restart
//查看權限組
cat /etc/group
//查看用戶列表
cat /etc/passwd
//查看項目所屬組,所屬用戶
ls -l /alidata/www/
目的是:在linux系統上創建ftp用戶,並限制其經過ftp訪問時,只能訪問用戶主目錄;其主目錄顯示路徑也是「/」,看不到上級目錄。
例如,我要創建用戶usertest,密碼爲usertest,主目錄爲/home/mpsp/ftp/usertest
操做系統:Red Hat Enterprise Linux Server release 5.4 (Tikanga)
ftp:vsftp
首先,創建linux系統用戶usertest:
一、以mpsp用戶登錄系統,創建usertest的主目錄/home/mpsp/ftp/usertest
二、以root用戶登陸linux系統,創建帶有主目錄的用戶,輸入命令:
[root@- home]# useradd -d /home/mpsp/ftp/usertest usertest
三、 爲用戶分配密碼,輸入命令:
[root@- etc]# passwd usertest
Changing password for user usertest.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
此時查看:[root@- etc]# cat /etc/passwd
可看到用戶配置是這樣的:usertest:x:504:504::/home/mpsp/ftp/usertest:/bin/bash
系統爲用戶分配了新的用戶id和組id:50四、504。因爲該用戶的全部文件需對mpsp用戶開放訪問權限,咱們能夠將usertest分配到mpsp組(組id500)。
四、爲用戶分配新的用戶組,輸入命令:
[root@- home]# usermod -g mpsp usertest
此時查看:[root@- etc]# cat /etc/passwd
可看到用戶配置是這樣的:usertest:x:504:500::/home/mpsp/ftp/usertest:/bin/bash
而後,配置用戶ftp權限及訪問路徑限制:
此時用usertest登錄系統ftp,是否能夠訪問?若是沒法訪問,說明咱們的ftp作了限制。打開/etc/vsftpd/vsftpd.conf,查找userlist_enable、userlist_deny、userlist_file。若是userlist_deny=NO:只容許userlist_file文件中的用戶可訪問ftp;若是userlist_deny=YES:userlist_file文件中列舉的用戶不能經過ftp訪問系統。userlist_enable是該功能的開關。咱們的系統配置以下:
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
因此須要把用戶加入到/etc/vsftpd/user_list文件中,每一個用戶一行。
因爲該主目錄是mpsp用戶建的,usertest是mpsp組的成員,因此usertest默認具備增刪查改權限;而usertest做爲mpsp組成員,對/home/mpsp下的全部路徑具備訪問權限(根據各目錄的權限設置,默認是這樣),登陸ftp後會發現,usertest用戶能夠訪問其餘目錄,而且具備mpsp組的權限,這樣作是不容許的,咱們須要將usertest用戶的訪問範圍控制在其主目錄下。方法以下:
1. cd /etc/vsftpd 進入ftp配置文件目錄
2. vi vsftpd.conf編輯此文件,找到#chroot_list_enable=YES,刪除前面的那個#號,表示開啓此限制功能
找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list
3. 編輯chroot_list文件,加入你要限制的用戶名,一行一個用戶.
================重點,chroot_list若是是用sublime 或者其餘編輯器直接打開的話,注意後面保存的形式爲ANSI格式,否則換行問題很嚴重,你能夠用txt打開,每行的用戶是合在一塊兒的。注意編碼格式
若是更新了vsftpd.conf,必定要重啓ftp,命令以下:
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
關閉 vsftpd: [ 肯定 ]
爲 vsftpd 啓動 vsftpd: [ 肯定 ]
再用usertest經過ftp訪問系統,用戶成功登錄,而且成功的被限制在本身的主目錄下,沒法訪問其餘目錄。大功告成。
一下這段 搞定了個人問題
# useradd –d /alidata/www/soacme.com -m ftpname
此命令建立了
一個用戶:ftpname,其中-d和-m選項用來爲登陸名ftpname
產生一個主目錄:/alidata/www/soacme.com(爲指定登陸後打開的目錄)
假設當前用戶是ftpname,則下面的命令修改該用戶本身的口令:
# passwd
Old password:******
New password:*******
Re-enter new password:*******
若是是超級用戶root,能夠用下列形式指定任何用戶的口令:
# passwd ftpname
New password:*******
Re-enter new password:*******
# chmod 775/alidata/www/soacme.com
修改項目的權限,重點:防止用戶沒法登陸上傳文件
# chown -R ftpname /alidata/www/soacme.com
修改項目的全部者(組) - R 爲該文件夾下全部 遞歸
//解決php腳本沒法建立或者刪除linux文件的問題。
首先www組,是能夠刪除和上傳,建立的的組別/
把ftpname 歸屬到www組
# usermod -g www ftpname
關鍵:賦予 全部者屬組
chown -R www:www /alidata/www/soacme.com