關於 Ubuntu 預設的 UID 及 GID 問題 [論壇 - 新手村]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 »


關於 Ubuntu 預設的 UID 及 GID 問題
會員一級
註冊日期:
2015/5/2 16:19
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 75
MP : 9 / 1006
EXP: 3
離線
各位好,想請教有關 UID 及 GID 問題。

最近常常遇到沒有權限存取檔案,我爬文後發現,
原來 Ubuntu Live CD 預設帳號(ubuntu)的 UID 及 GID 好像都是 999;
可是我安裝 Ubuntu 時所建立的帳號(刻意也取名ubuntu),預設的 UID 及 GID 卻是 1000,
導致沒有權限,無法存取 Ubuntu Live CD 的帳號 ubuntu (999) 所建立的檔案。

因為有時需要使用 Ubuntu Live CD 開機,有時需要使用安裝好的 Ubuntu 系統開機,
如果 UID 及 GID 不同,無法互相存取檔案的話,真的很不方便。

想請問:
一、已經安裝好 Ubuntu 系統,如果把帳號(ubuntu)的 UID/GID 從 1000 修改為 999 的話,步驟會不會很複雜?
二、如果事後修改 UID/GID 真的很複雜的話;那能不能重新安裝 Ubuntu,一開始在建立帳號時,就直接指定 UID/GID 為 999 呢?

2015/5/3 21:19
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員三級
註冊日期:
2012/4/26 9:45
所屬群組:
已註冊使用者
等級: 10
HP : 0 / 231
MP : 42 / 5118
EXP: 26
離線
使用下列指令修改目錄或檔案的存取權限就可以了(這是用來修改你的存檔區的存取權限的):
sudo chmod -R o+rwx <目錄或檔案名稱>

或是你可以把帳號加入 ubuntu live cd帳號的gid為子群組

usermod -G <群組名稱> <所要修改的帳號>

2015/5/3 21:34
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員一級
註冊日期:
2015/5/2 16:19
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 75
MP : 9 / 1006
EXP: 3
離線
您好,我知道可以用chown/chgrp/chmod指令,改變檔案的UID/GID值;
只是每次用不同的系統開機,都要去修改檔案的屬性,真的很麻煩。

所以我的問題是,希望能直接把不同系統的帳號(ubuntu)的UID/GID都改成一致(都是999),不知道可行嗎?

2015/5/3 21:42
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員三級
註冊日期:
2012/4/26 9:45
所屬群組:
已註冊使用者
等級: 10
HP : 0 / 231
MP : 42 / 5118
EXP: 26
離線
tmpfs 寫到:
您好,我知道可以用chown/chgrp/chmod指令,改變檔案的UID/GID值;
只是每次用不同的系統開機,都要去修改檔案的屬性,真的很麻煩。

所以我的問題是,希望能直接把不同系統的帳號(ubuntu)的UID/GID都改成一致(都是999),不知道可行嗎?

這要留給功力深的人回答,我目前只能說用usermod 可以改UID與GID;不過我沒改過,所以不知道改完之後你可不可以存取原來的檔案與目錄,兩邊要配得起來才行(除非你的存檔區是同一個區域,那這樣就省事多了)。

不然你就把要共用的再開一個ntfs區,然後兩邊都把它掛起來就解決了。

2015/5/3 21:48
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 850
MP : 580 / 18829
EXP: 3
離線
redhung 寫到:
tmpfs 寫到:
您好,我知道可以用chown/chgrp/chmod指令,改變檔案的UID/GID值;
只是每次用不同的系統開機,都要去修改檔案的屬性,真的很麻煩。

所以我的問題是,希望能直接把不同系統的帳號(ubuntu)的UID/GID都改成一致(都是999),不知道可行嗎?

這要留給功力深的人回答,我目前只能說用usermod 可以改UID與GID;不過我沒改過,所以不知道改完之後你可不可以存取原來的檔案與目錄,兩邊要配得起來才行(除非你的存檔區是同一個區域,那這樣就省事多了)。

不然你就把要共用的再開一個ntfs區,然後兩邊都把它掛起來就解決了。



http://linux.vbird.org/linux_basic/0410accountmanager.php#account


2015/5/3 21:53
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員三級
註冊日期:
2012/4/26 9:45
所屬群組:
已註冊使用者
等級: 10
HP : 0 / 231
MP : 42 / 5118
EXP: 26
離線
samwhelp 寫到:
redhung 寫到:
tmpfs 寫到:
您好,我知道可以用chown/chgrp/chmod指令,改變檔案的UID/GID值;
只是每次用不同的系統開機,都要去修改檔案的屬性,真的很麻煩。

所以我的問題是,希望能直接把不同系統的帳號(ubuntu)的UID/GID都改成一致(都是999),不知道可行嗎?

這要留給功力深的人回答,我目前只能說用usermod 可以改UID與GID;不過我沒改過,所以不知道改完之後你可不可以存取原來的檔案與目錄,兩邊要配得起來才行(除非你的存檔區是同一個區域,那這樣就省事多了)。

不然你就把要共用的再開一個ntfs區,然後兩邊都把它掛起來就解決了。



http://linux.vbird.org/linux_basic/0410accountmanager.php#account


看完了,所以鳥哥也不建議修改UID。
看起來,再開一個ntfs區是比較好的辦法,這也是我之前用了很久的辦法。

2015/5/3 22:00
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員一級
註冊日期:
2015/5/2 16:19
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 75
MP : 9 / 1006
EXP: 3
離線
您好,感謝回覆。

我是把 Ubuntu 系統安裝在 SSD 的 EXT4 分割區上,
因為需要不定時執行 fstrim 指令:
sudo fstrim -v /
sudo fstrim -v /home

所以目前不考慮使用 NTFS 分割區。
(Linux 應該不能對 NTFS 分割區執行 fstrim 指令吧?)

主要還是希望,以後能完全脫離 Windows 作業系統,也盡量避免使用 Windows 檔案系統。

2015/5/3 22:22
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 850
MP : 580 / 18829
EXP: 3
離線
## 前提

假設你使用的帳號是「tmpfs」,群組應該也是「tmpfs」。


## 執行步驟


先切換成root帳號


$ sudo su



這時候就不要用sudo了,因為若你改了/etc/passwd,要再改/etc/group,就不能使用sudo了,不過這時候就要搬出pkexec來解救了,參考「這篇


以下執行都在root帳號完成。

=========================================

## 更改「/etc/group」


$ vi /etc/group






tmpfs:x:1000:



改成



tmpfs:x:999:




=========================================


## 更改「/etc/passwd」


$ vi /etc/passwd






tmpfs:x:1000:1000:tmpfs,,,:/home/tmpfs:/bin/bash



改成



tmpfs:x:999:999:tmpfs,,,:/home/tmpfs:/bin/bash



=========================================

## 修改家目錄的擁有者和所屬群組


$ chown 999.999 /home/tmpfs -R



或是


$ chown 999:999 /home/tmpfs -R



=========================================

大功告成!




此篇一樣收入這個「索引」。


## 額外一提

一直還沒去研究「/etc/default/useradd」這個檔要怎麼使用。
先提出來給大家討論了。

執行下面指令,查詢「/etc/default/useradd」是屬於哪個套件。


$ dpkg -S /etc/default/useradd



顯示


passwd: /etc/default/useradd



所以知道「/etc/default/useradd」是屬於「passwd」這個套件。

可以執行下面的指令,查看「passwd」這個套件,有哪些檔案裝在系統裡


$ dpkg -L passwd



可以執行下面的指令,查看「passwd」這個套件,有哪些manual可以查詢


$ dpkg -L passwd | grep '/man/man*'



這幾個技巧可以參考「這篇」,「這篇」,「這篇」。

$ man useradd

另外還有「/etc/adduser.conf」這個檔。


$ grep '/etc/adduser.conf' /var/lib/dpkg/info -R



另外Ubuntu的安裝程式是「ubiquity」這個套件。
你可以觀看「/usr/lib/ubiquity/user-setup/user-setup-apply」這個檔,
查詢「adduser」,看看能不能找到一些線索。

以上初步探索



tmpfs 寫到:
各位好,想請教有關 UID 及 GID 問題。

最近常常遇到沒有權限存取檔案,我爬文後發現,
原來 Ubuntu Live CD 預設帳號(ubuntu)的 UID 及 GID 好像都是 999;
可是我安裝 Ubuntu 時所建立的帳號(刻意也取名ubuntu),預設的 UID 及 GID 卻是 1000,
導致沒有權限,無法存取 Ubuntu Live CD 的帳號 ubuntu (999) 所建立的檔案。

因為有時需要使用 Ubuntu Live CD 開機,有時需要使用安裝好的 Ubuntu 系統開機,
如果 UID 及 GID 不同,無法互相存取檔案的話,真的很不方便。

想請問:
一、已經安裝好 Ubuntu 系統,如果把帳號(ubuntu)的 UID/GID 從 1000 修改為 999 的話,步驟會不會很複雜?
二、如果事後修改 UID/GID 真的很複雜的話;那能不能重新安裝 Ubuntu,一開始在建立帳號時,就直接指定 UID/GID 為 999 呢?



redhung 寫到:
samwhelp 寫到:
redhung 寫到:
tmpfs 寫到:
您好,我知道可以用chown/chgrp/chmod指令,改變檔案的UID/GID值;
只是每次用不同的系統開機,都要去修改檔案的屬性,真的很麻煩。

所以我的問題是,希望能直接把不同系統的帳號(ubuntu)的UID/GID都改成一致(都是999),不知道可行嗎?

這要留給功力深的人回答,我目前只能說用usermod 可以改UID與GID;不過我沒改過,所以不知道改完之後你可不可以存取原來的檔案與目錄,兩邊要配得起來才行(除非你的存檔區是同一個區域,那這樣就省事多了)。

不然你就把要共用的再開一個ntfs區,然後兩邊都把它掛起來就解決了。



http://linux.vbird.org/linux_basic/0410accountmanager.php#account


看完了,所以鳥哥也不建議修改UID。
看起來,再開一個ntfs區是比較好的辦法,這也是我之前用了很久的辦法。



tmpfs 寫到:
您好,感謝回覆。

我是把 Ubuntu 系統安裝在 SSD 的 EXT4 分割區上,
因為需要不定時執行 fstrim 指令:
sudo fstrim -v /
sudo fstrim -v /home

所以目前不考慮使用 NTFS 分割區。
(Linux 應該不能對 NTFS 分割區執行 fstrim 指令吧?)

主要還是希望,以後能完全脫離 Windows 作業系統,也盡量避免使用 Windows 檔案系統。

2015/5/3 23:05
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員一級
註冊日期:
2015/5/2 16:19
所屬群組:
已註冊使用者
等級: 4
HP : 0 / 75
MP : 9 / 1006
EXP: 3
離線
非常感謝 "samwhelp" 的回覆及提示。

我昨天初次嘗試修改,結果失敗了。
系統無法再以我的 ubuntu 帳號登入圖形界面。
(登入畫面只有 "Guest Session" 帳號可以選擇,根本沒有出現我的 ubuntu 帳號)
失敗的原因,可能是我使用 chown 指令的方式錯誤,系統中有部份檔案的 UID 及 GID 沒有修改完整,導致帳號的權限錯亂。

後來不死心,繼續上網搜尋及爬文,參考了一些資料。

我今天再次嘗試修改,結果成功了。
在此分享一下我的詳細修改步驟,如下:

## 開始
## 啟用 root 帳號(設定 root 密碼)
ubuntu@ubuntu:~$ sudo passwd root
[sudo] password for ubuntu: ************
Enter new UNIX password: ******
Retype new UNIX password: ******
passwd: password updated successfully

## 登出圖形界面(登出 ubuntu 帳號)
................

## 切換到文字界面(同時按下Ctrl+Alt+F1組合鍵)
Ubuntu 14.04.1 LTS ubuntu tty1

## 登入 root 帳號
ubuntu login: root
Password: ******

## 確認 ubuntu 帳號的 UID
root@ubuntu:~# id -u ubuntu
1000

## 修改帳號的 UID 及 GID
root@ubuntu:~# usermod -u 999 ubuntu
root@ubuntu:~# groupmod -g 999 ubuntu

## 修改檔案的 UID 及 GID
root@ubuntu:~# chown -Rhc --from=1000 999 /
root@ubuntu:~# chown -Rhc --from=:1000 :999 /

## 同步
root@ubuntu:~# sync

## 登出 root 帳號
root@ubuntu:~# logout

## 登入 ubuntu 帳號
ubuntu login: ubuntu
Password: ************

## 關閉 root 帳號(清除 root 密碼)
ubuntu@ubuntu:~$ sudo passwd -dl root
[sudo] password for ubuntu: ************
passwd: password expiry information changed.

## 登出 ubuntu 帳號
ubuntu@ubuntu:~$ logout

## 切換到圖形界面(同時按下Ctrl+Alt+F7組合鍵)
## 結束


心得:使用 chown 指令,要小心輸入參數,否則用錯會導致系統錯亂。

2015/5/5 21:41
應用擴展 工具箱
回覆: 關於 Ubuntu 預設的 UID 及 GID 問題
會員五級
註冊日期:
2012/4/22 10:50
所屬群組:
已註冊使用者
等級: 35
HP : 170 / 850
MP : 580 / 18829
EXP: 3
離線
tmpfs 寫到:
非常感謝 "samwhelp" 的回覆及提示。

我昨天初次嘗試修改,結果失敗了。
系統無法再以我的 ubuntu 帳號登入圖形界面。
(登入畫面只有 "Guest Session" 帳號可以選擇,根本沒有出現我的 ubuntu 帳號)
失敗的原因,可能是我使用 chown 指令的方式錯誤,系統中有部份檔案的 UID 及 GID 沒有修改完整,導致帳號的權限錯亂。

後來不死心,繼續上網搜尋及爬文,參考了一些資料。

我今天再次嘗試修改,結果成功了。
在此分享一下我的詳細修改步驟,如下:

## 開始
## 啟用 root 帳號(設定 root 密碼)
ubuntu@ubuntu:~$ sudo passwd root
[sudo] password for ubuntu: ************
Enter new UNIX password: ******
Retype new UNIX password: ******
passwd: password updated successfully

## 登出圖形界面(登出 ubuntu 帳號)


## 切換到文字界面(同時按下Ctrl+Alt+F1組合鍵)
Ubuntu 14.04.1 LTS ubuntu tty1

## 登入 root 帳號
ubuntu login: root
Password: ******

## 確認 ubuntu 帳號的 UID
root@ubuntu:~# id -u ubuntu
1000

## 修改帳號的 UID 及 GID
root@ubuntu:~# usermod -u 999 ubuntu
root@ubuntu:~# groupmod -g 999 ubuntu

## 修改檔案的 UID 及 GID
root@ubuntu:~# chown -Rhc --from=1000 999 /
root@ubuntu:~# chown -Rhc --from=:1000 :999 /

## 同步
root@ubuntu:~# sync

## 登出 root 帳號
root@ubuntu:~# logout

## 登入 ubuntu 帳號
ubuntu login: ubuntu
Password: ************

## 關閉 root 帳號(清除 root 密碼)
ubuntu@ubuntu:~$ sudo passwd -dl root
[sudo] password for ubuntu: ************
passwd: password expiry information changed.

## 登出 ubuntu 帳號
ubuntu@ubuntu:~$ logout

## 切換到圖形界面(同時按下Ctrl+Alt+F7組合鍵)
## 結束


心得:使用 chown 指令,要小心輸入參數,否則用錯會導致系統錯亂。



讚喔!

我是用Xubuntu 14.04 測試,忘了講!

我改完,也是會"Guest Session"
但我可以輸入不同的帳號,所以還是可以登入。

我本來還在想,不知道還有哪裡沒有改到,會導致發生問題。

感謝你又讓我學到了一招,用打指令的方式,來修改。

雖然「redhung」有提到,用打指令的方式,之前我沒去深究,所以只想到要修改那兩個檔。

還學到「chown --from」的用法,太感謝了

=========================================================

另外應該可以直接用


$ sudo su



這時候會問你原來帳號的密碼。

只要輸入正確就可以切換到root了。(前提是原來帳號可以使用sudo)

就不需要啟用root密碼後,又把root密碼關閉。

不過也讓我學會關閉密碼的方式。



=========================================================

剛查

$ man usermod

又看到一個檔「/etc/login.defs」。

發現裡面有一段



#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
#SYS_UID_MIN 100
#SYS_UID_MAX 999

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
#SYS_GID_MIN 100
#SYS_GID_MAX 999



先紀錄一下,以後再來研究,這部份的用法

=========================================================

另外想到一個,

既然可以用「chown --from= ...」來改

不知道有沒有指令,可以找出系統所有檔案屬於某個uid的,
不然就要寫script了,一樣先紀錄起來。

不過一時也沒想到有什麼情境,有這樣的需求。


=========================================================

另外「chown」和「chmod」是屬於「coreutils」這個「套件」。

2015/5/5 21:57
應用擴展 工具箱

(1) 2 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.