1. 程式人生 > >linux 更改使用者根目錄

linux 更改使用者根目錄

linux 如何檢視使用者id
cat /etc/passwd | grep <你的使用者名稱>來檢視你的ID。
[[email protected] ~]$ cat /etc/passwd | grep dacp
dacp:x:501:503::/home/dacp:/bin/bash
使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell

linux如何修改使用者主目錄
有兩種方法:
第一:修改/etc/passwd檔案
第二:usermod命令
詳細說明如下:
第一種方法:vi /etc/passwd
找到要修改的使用者那幾行,修改掉即可。此法很暴力,建議慎用。
第二種:usermod
usermod -d /usr/newfolder -u uid
-u後面一定要接uid啊,不是username
附: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  解除密碼鎖定。
#cat/etc/passwd
root:x:0:0:Superuser:/:
daemon:x:1:1:Systemdaemons:/etc:
bin:x:2:2:Ownerofsystemcommands:/bin:
sys:x:3:3:Ownerofsystemfiles:/usr/sys:
adm:x:4:
4:Systemaccounting:/usr/adm: uucp:x:5:5:UUCPadministrator:/usr/lib/uucp: auth:x:7:21:Authenticationadministrator:/tcb/files/auth: cron:x:9:16:Crondaemon:/usr/spool/cron: listen:x:37:4:Networkdaemon:/usr/net/nls: lp:x:71:18:Printeradministrator:/usr/spool/lp: sam:x:200:50:Samsan:/usr/sam:/bin/sh 從上面的例子我們可以看到,/etc/passwd中一行記錄對應著一個使用者,每行記錄又被冒號(:)分隔為7個欄位,其格式和具體含義如下: 使用者名稱:口令:使用者標識號:組標識號:註釋性描述:主目錄:登入Shell “使用者名稱”是代表使用者賬號的字串。通常長度不超過8個字元,並且由大小寫字母和/或數字組成。登入名中不能有冒號(:),因為冒號在這裡是分隔符。為了相容起見,登入名中最好不要包含點字元(.),並且不使用連字元(-)和加號(+)打頭。 “口令”一些系統中,存放著加密後的使用者口令字。雖然這個欄位存放的只是使用者口令的加密串,不是明文,但是由於/etc/passwd檔案對所有使用者都可讀,所以這仍是一個安全隱患。因此,現在許多Linux系統(如SVR4)都使用了shadow技術,把真正的加密後的使用者口令字存放到/etc/shadow檔案中,而在/etc/passwd檔案的口令欄位中只存放一個特殊的字元,例如“x”或者“*”。 “使用者標識號”是一個整數,系統內部用它來標識使用者。一般情況下它與使用者名稱是一一對應的。如果幾個使用者名稱對應的使用者標識號是一樣的,系統內部將把它們視為同一個使用者,但是它們可以有不同的口令、不同的主目錄以及不同的登入Shell等。 通常使用者標識號的取值範圍是0655350是超級使用者root的標識號,199由系統保留,作為管理賬號,普通使用者的標識號從100開始。在Linux系統中,這個界限是500。 “組標識號”欄位記錄的是使用者所屬的使用者組。它對應著/etc/group檔案中的一條記錄。 “註釋性描述”欄位記錄著使用者的一些個人情況,例如使用者的真實姓名、電話、地址等,這個欄位並沒有什麼實際的用途。在不同的Linux系統中,這個欄位的格式並沒有統一。在許多Linux系統中,這個欄位存放的是一段任意的註釋性描述文字,用做finger命令的輸出。 “主目錄”,也就是使用者的起始工作目錄,它是使用者在登入到系統之後所處的目錄。在大多數系統中,各使用者的主目錄都被組織在同一個特定的目錄下,而使用者主目錄的名稱就是該使用者的登入名。各使用者對自己的主目錄有讀、寫、執行(搜尋)許可權,其他使用者對此目錄的訪問許可權則根據具體情況設定。 使用者登入後,要啟動一個程序,負責將使用者的操作傳給核心,這個程序是使用者登入到系統後執行的命令直譯器或某個特定的程式,即ShellShell是使用者與Linux系統之間的介面。LinuxShell有許多種,每種都有不同的特點。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系統管理員可以根據系統情況和使用者習慣為使用者指定某個Shell。如果不指定Shell,那麼系統使用sh為預設的登入Shell,即這個欄位的值為/bin/sh。 使用者的登入Shell也可以指定為某個特定的程式(此程式不是一個命令直譯器)。利用這一特點,我們可以限制使用者只能執行指定的應用程式,在該應用程式執行結束後,使用者就自動退出了系統。有些Linux系統要求只有那些在系統中登記了的程式才能出現在這個欄位中。 系統中有一類使用者稱為偽使用者(psuedousers),這些使用者在Linux /etc/passwd檔案中也佔有一條記錄,但是不能登入,因為它們的登入Shell為空。它們的存在主要是方便系統管理,滿足相應的系統程序對檔案屬主的要求。常見的偽使用者如下所示。 偽使用者含義 bin擁有可執行的使用者命令檔案 sys擁有系統檔案 adm擁有帳戶檔案 uucpUUCP使用 lplp或lpd子系統使用 nobodyNFS使用 擁有帳戶檔案 除了上面列出的偽使用者外,還有許多標準的偽使用者,例如:audit,cron,mail,usenet等,它們也都各自為相關的程序和檔案所需要。 由於Linux /etc/passwd檔案是所有使用者都可讀的,如果使用者的密碼太簡單或規律比較明顯的話,一臺普通的計算機就能夠很容易地將它破解,因此對安全性要求較高的Linux系統都把加密後的口令字分離出來,單獨存放在一個檔案中,這個檔案是/etc/shadow檔案。只有超級使用者才擁有該檔案讀許可權,這就保證了使用者密碼的安全性。
使用者ilink是存在的:
[root@demo ~]# id ilink
uid=501(ilink) gid=502(comp) groups=502(comp)

修改它的主目錄:
[root@demo ~]# usermod -d /comp/ilink -u 501
usermod: user 501 does not exist

修改它的SHELL:
[root@demo ~]# usermod -s /usr/bin/ksh -u 501
usermod: user 501 does not exist


**解決**
你要更改ilink使用者的主目錄 直接
usermod -d /comp/ilink ilink
Redhat6.3 新增使用者後切換使用者出現 -bash-4.1$
我在Redhat6.3 下
useradd XXX
usermod -d /home/123 -s /bin/bash XXX
su - xxx
就變成
-bash-4.1$
是什麼問題 ?!
**解決:**
因為 /home/123下沒有.bash_profile和.bash_rc,因此PS1環境變數沒有設定成想要的

只要將使用者原來HOME下的這兩個檔案複製過來即可
在LINUX下誤刪使用者的.bash_profile和.bashrc,該如何解決?
Linux系統下bash_profile使每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,主要設定使用者的一些環境變數,可以通過新建一個bash_profile檔案,寫入下面程式碼即可:
vi ~/.bash_profile
#寫入如下的內容:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
       . ~/.bashrc
fi
# User specific environment and startup programs
export PATH

通常要檢視一下其他使用者的這個檔案怎麼寫的,仿照寫。。。
登入其他使用者如:xtwh
[[email protected] ~]$ pwd
/home/xtwh
[[email protected] ~]$ ls -la
-rw-r--r--. 1 xtwh xtwh        18 79 2013 .bash_logout
-rw-r--r--. 1 xtwh xtwh       176 79 2013 .bash_profile
檢視,拷貝即可。