iT邦幫忙

0

linux 大量修改使用者群組?

centos 5.5

網路上大量建帳號的文很多,但是我要的是如何大量修改使用者群組,請大家分享,謝謝

2 個回答

14
wiseguy
iT邦超人 1 級 ‧ 2012-02-08 18:19:48
最佳解答

不懂你的『大量修改使用者群組』是什麼意思?
是指把一大堆帳號都設成某一個群組?還是把一大堆帳號都加入某一個群組?

如果是前者,如下例:(把 GGG 換成你想要換的群組編號)

<pre class="c" name="code">awk -F: '{print $1":"$2":"$3":GGG:"$5":"$6":"$7}' /etc/passwd > /tmp/x
mv /tmp/x /etc/passwd

就可以把所有人都換成 GGG 群組。

下例:(把 GGG 換成你想要換的群組編號)

<pre class="c" name="code">awk -F: '{print $1":"$2":"$3":"$4",GGG:"$5":"$6":"$7}' /etc/passwd > /tmp/x
mv /tmp/x /etc/passwd

就可以把所有人都加入 GGG 群組

感謝回應,

是一大堆帳號都設成某一個群組

但是這樣會不會連系統帳號都改了?

我只想改使用者,怕改了系統會出錯

wiseguy iT邦超人 1 級 ‧ 2012-02-09 00:17:32 檢舉

OK,CentOS 通常會把系統用的帳號 UID 都放在 1000 以內,所以只要這樣寫:

<pre class="c" name="code">awk -F: '{if ($3 < 1000) print $0}' /etc/passwd > /tmp/x
awk -F: '{if ($3 >= 1000) print $1":"$2":"$3":GGG:"$5":"$6":"$7}' /etc/passwd >> /tmp/x
mv /tmp/x /etc/passwd

就不會改到系統帳號了。
把 /tmp/x 蓋掉 passwd 之前,確認一下內容沒問題唷。

wiseguy iT邦超人 1 級 ‧ 2012-02-09 00:23:11 檢舉

寫成一行就行了

<pre class="c" name="code">awk -F: '{if ($3 < 1000) print $0; else print $1":"$2":"$3":GGG:"$5":"$6":"$7}' /etc/passwd > /tmp/x
mv /tmp/x /etc/passwd
4
sula3065408
iT邦研究生 1 級 ‧ 2012-02-08 18:23:10

直接改/etc/group這個文件呢?

有想到,但是要一個一個改很麻煩

我是改 /etc/passwd

ianianwu iT邦研究生 5 級 ‧ 2012-02-16 18:17:17 檢舉

你可以使用webmin介面
最近我也在移機,要更換大量群組
你可以先建立起一個新群組,可以大量選擇要加入使用者
再將你不要的群組直接移除掉!!
網路上應該可以找的到不少教學文章,我這邊就不細打,你可以參考看看!!

我要發表回答

立即登入回答