电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Linux 用戶管理工具介紹

瀏覽:136日期:2023-07-15 09:38:19

Linux是一個多用戶的操作系統,她有完美的用戶管理工具,這些工具包括用戶的查詢、添加、修改,以及用戶之間相互切換的工具等;通過這些工具,我們能安全、輕松的完成用戶管理;

在這里我們要引入用戶控制工具的概念,比如對用戶添加的useradd或adduser ,對用戶刪除的 userdel ,與修改用戶相關信息的 usermod、chfn、chsh ,還有密碼設置工具passwd 等等;這些工具只所以被稱為用戶控制工具,理由是她們是控制和管理用戶的工具。

一、與用戶管理相關的配置文件;1、/etc/passwd 和/etc/groups

我們對用戶和用戶組進行添加、修改、刪除最終目的是修改系統用戶 /etc/passwd和其加密資訊文件 /etc/shadows 以及用戶組的 /etc/groups和其加密資訊文件/etc/gshadow,所以對用戶和用戶組的添加并不僅僅是只能通過用戶添加、修改、刪除等用戶控制工具來完成,我們還能直接修改與用戶和用戶組相應的配置文件來達到目的。在 《用戶(user)和用戶組(group)配置文件詳解》一文中,我有談過通過修改用戶及用戶組配置文件的辦法來添加、刪除、修改用戶,進而達到對系統用戶的管理;

參考文檔:

《Linux 用戶(user)和用戶組(group)管理概述》《用戶(user)和用戶組(group)配置文件詳解》

2、超級權限控制sudo 的配置文件 /etc/sudoers ;

參考文檔: 《Linux 系統中的超級權限的控制》

3、添加用戶規則文件 /etc/login.defs 和 /etc/default/useradd

參考文檔:《Linux 用戶(user)和用戶組(group)管理概述》

二、添加用戶工具和方法;

添加用戶工具有useradd和adduser ,這兩個工具所達到的目的都是一樣的,在Fedora 發行版中,useradd 和adduser 用法是一樣的;但在slackware發行版本中,adduser和useradd 還是有所不同,表現為adduser 是以人機交互的提問的方式來添加用戶;

除了useradd和adduser工具以外,我們還能通過修改用戶配置文件/etc/passwd和/etc/groups的辦法來實現;

當然我們也不要忽略一些發行版獨有用戶管理工具,比如Fedora 中有 system-config-users 工具;這個工具比較簡單,點幾下鼠標就能完成;

1、useradd 工具;

useradd 不加參數選項時,后面直接跟所添加的用戶名時,系統時讀取添加用戶配置文件/etc/login.defs和/etc/default/useradd文件,然后讀取/etc/login.defs和/etc/default/useradd中所定義的規則添加用戶;并向/etc/passwd和/etc/groups文件添加用戶和用戶組記錄;當然/etc/passwd和/etc/groups的加密資訊文件也同步生成記錄;同時發生的還有系統會自動在/etc/add/default中所約定的目錄中建用戶的家目錄,并復制/etc/skel中的文件(包括隱藏文件)到新用戶的家目錄中;

useradd 的語法:

usage: useradd; [-u uid [-o]] [-g group] [-G group,...] [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] name useradd; -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]

當我們執行useradd 用戶名 來添加用戶時,我們會發現一個比較有意思的現象,新添中的用戶的家目錄總是被自動添加到 /home目錄下,我們先舉個例子;

實例一:不加任何參數,直接添加用戶;

[root@localhost beinan]# useradd; beinanlinux[root@localhost beinan]# ls -ld /home/beinanlinux/drwxr-xr-x; 3 beinanlinux beinanlinux 4096 11月; 2 15:20 /home/beinanlinux/

在這個例子中,我們添加了beinanlinux用戶,我們在查看/home/目錄時,會發現系統自建了一個beinanlinux的目錄;

我們再來查看 /etc/passwd 文件有關beinanlinux的記錄,也會有新發現;我們通過more 來讀取 /etc/passwd 文件,并且通過grep 來抽取 beinanlinux字段,得出如下一行;

[root@localhost beinan]# more /etc/passwd | grep beinanlinuxbeinanlinux:x:509:509::/home/beinanlinux:/bin/bash

從得出的beinanlinux的記錄來看,以adduser 工具添加beinanlinux用戶時,設置用戶的UID和GID分別為509 ,并且把beinanlinux的家目錄設置在 /home/beinanlinux ,所有的SHELL是 bash ; 我們再來看看 /etc/shadow、/etc/groups和/etc/gshadow 文件,是不是也有與beinanlinux有關的行;我們還要查看/etc/default/useradd 和/etc/login.defs文件的規則,看一下beinanlinux用戶的增加是不是和這兩個配置文件有關;我們還要查看 /home/beinanlinux目錄下的文件,是不是和/etc/skel目錄中的一樣;

由此我們引出我們下面所要談的內容:

useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]

1)/etc/default/useradd 配置文件的定義;useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]

useradd 加-D參數后,就是用來改變配置文件 /etc/default/useradd的;useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]

當-D選項出現時,useradd秀出現在的預設值,或是藉由命令列的方式更新預設值。可用選項為∶ -b default_home 注:定義用戶所屬目錄的前一個目錄。用戶名稱會附加在default_home后面用來建立新用戶的目錄。當然使用-d后則此選項無效。 -e default_expire_date;;注:用戶帳號停止日期。 -f default_inactive; 注:帳號過期幾日后停權。 -g default_group;;;;;注:新帳號起始用戶組名或ID。用戶組名須為現有存在的名稱。用戶組ID也須為現有存在的用戶組。 -s default_shell注:用戶登入后使用的shell名稱。往后新加入的帳號都將使用此shell. 如不指定任何參數,useradd顯示目前預設的值。

實例二:useradd -D 如不指定任何參數,useradd顯示目前預設的值;

[root@localhost beinan]# useradd -DGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skelCREATE_MAIL_SPOOL=no

我們看一下/etc/default/useradd 文件就明白了,應該和上面的輸出是一樣的;所以如果我們想改變useradd配置文件/etc/default/adduser 的內容,也可以用編輯器直接操作,如果你會用vi編輯器或者其它編輯器的話,這個應該不成問題吧;實例三:我想把添加用戶時的默認SHELL /bin/bash 改為 /bin/tcsh ,則應該用下面的命令;

[root@localhost beinan]# useradd -D -s /bin/tcsh; 注:把添加用戶時的SHELL 改為tcsh ;[root@localhost beinan]# more /etc/default/useradd注:查看是否成功;# useradd defaults fileGROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/tcsh注:成功;SKEL=/etc/skelCREATE_MAIL_SPOOL=no

這個-D參數的解說就這樣了,也是比較簡單,如果不會用命令,直接改參數配置文件總會吧;Linux解決問題是極為靈活的,就看我們怎么解決了,對不對?2)useradd 添加用戶;

useradd; [-u uid [-o]] [-g group] [-G group,...] [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] name

新帳號建立,當不加-D參數,useradd指令使用命令列來指定新帳號的設定值and使用系統上的預設值.新用戶帳號將產生一些系統檔案,用戶目錄建立,拷備起始檔案等,這些均可以利用命令列選項指定。此版本為RedHat Linux提供,可幫每個新加入的用戶建立個別的group,毋須添加-n選項。

useradd 可使用的選項為 -c comment注:新帳號 password 檔的說明欄 。 -d home_dir注:新帳號每次登入時所使用的home_dir。預設值為default_home內login名稱,并當成登入時目錄名稱。 -e expire_date; 注:帳號終止日期。日期的指定格式為MM/DD/YY。 -f inactive_days 注:帳號過期幾日后永久停權。當值為0時帳號則立刻被停權。而當值為-1時則關閉此功能,預設值為-1 -g initial_group注:group名稱或以數字來做為用戶登入起始用戶組(group)。用戶組名須為現有存在的名稱。用戶組數字也須為現有存在的用戶組。預設的用戶組數字為1。 -G group,[...] 注:定義此用戶為此一堆groups的成員。每個用戶組使用','區格開來,不可以夾雜空白字元。用戶組名同-g選項的限制。定義值為用戶的起始用戶組。。 -m;;注: 用戶目錄如不存在則自動建立。如使用-k選項skeleton_dir內的檔案將復制至用戶目錄下。然而在/etc/skel目錄下的檔案也會復制過去取代。任何在skeleton_dir or /etc/skel的目錄也相同會在用戶目錄下一一建立。The-k同-m不建立目錄以及不復制任何檔案為預設值。 -M;;不建立用戶目錄,即使/etc/login.defs系統檔設定要建立用戶目錄。 -n;;預設值用戶用戶組與用戶名稱會相同。此選項將取消此預設值。 -r;;;此參數是用來建立系統帳號。系統帳號的UID會比定義在系統檔上/etc/login.defs.的UID_MIN來的小。注意useradd此用法所建立的帳號不會建立用戶目錄,也不會在乎紀錄在/etc/login.defs.的定義值。如果你想要有用戶目錄須額外指定-m參數來建立系統帳號。 -s shell; 注:用戶登入后使用的shell名稱。預設為不填寫,這樣系統會幫你指定預設的登入shell。 -u uid;;;uid用戶的ID值。必須為唯一的ID值,除非用-o選項。數字不可為負值。預設為以/etc/login.defs中的UID_MIN的值為準,0到UID_MIN的值之間,為系統保留的UID ;

useradd 這么多的參數看上去頭有點暈,我們如何用呢??其實很簡單;一個參數一個參數的試一試不就明白了??這是最好的學習方法。實踐是檢驗真理的唯一標準;

如果useradd 后面直接跟用戶名,不加任何參數,表示添加用戶時按事先/etc/default/adduser 和/etc/login.defs 添加新用戶的配置文件的規則來添加用戶;其實我們為了方便,也可以把這兩個文件修改以適合我們添加用戶需要;

useradd 為什么還需要那么多的參數呢?

原因很簡單,主要是為了管理員方便管理用戶。useradd 是靈活的,可以跳過/dev/default/adduser 和/etc/login.defs 兩個配置文件中的規則來自定義添加用戶;比如在用戶的家目錄,在/etc/default/adduser 中可能定義在/home目錄下建立,如果我們的機器/home獨立占一個分區,并且有點緊張,但我們又不想改變/etc/default/adduser 關于家目錄的定義,這里我們就可以通過 adduser -d 參數把新增用戶家目錄定義到空間比較空閉的分區;

通過下面的幾個例子,可能有助于我們理解useradd ,其實很簡單~,學習也是這樣,先從簡單的入手,一步一步的走過來,沒有什么難的~~

實例四:以/etc/logins.defs和/etc/default/adduser 默認的規則添加用戶;

[root@localhost ~]# useradd; longcpu

注解:如果useradd 后面直接用戶名,表示系統讀取 /etc/login.defs和/etc/default/adduser 配置文件,根本這兩個配置文件所定義的規則來添加用戶,比如用戶的家目錄哪里,用什么SHELL,UID和GID的分配... ... 查看/etc/passwd的新增記錄,然后根據 /etc/login.defs和/etc/default/adduser 查看新增用戶是否符合這兩個配置文件所約定的規則;

實例五:練習參數的使用;

[root@localhost ~]# useradd -c ChinaCpu; longcpu; 注:添加一個新用戶amdcpu ,使用參數-c;[root@localhost ~]# more /etc/passwd |grep longcpu注:查看/etc/passwd 文件,并抽取longcpu的記錄;longcpu:x:510:510:ChinaCpu:/home/longcpu:/bin/bash;

注:看上去是已經有amdcpu用戶了;x是密碼段;UID和GID 都是510,ChinaCpu表示是什么意思? 家目錄位于/home/amdcpu,SHELL是bash ;

[root@localhost ~]# finger longcpu 注:我們查詢一下amdcpu 用戶的信息;Login: longcpu Name: ChinaCpu 注:-c ChinaCpu 表示用戶真實的名字或全名;Directory: /home/longcpu Shell: /bin/bashNever logged in.No mail.No Plan.

注解:這個例子,我們做了添加用戶、查看/etc/passwd 的變化; 并且通過finger 來查詢longcpu用戶的信息,目的是理解參數-c的用處;

參數-c 后面的就是就是UID:GID后面說明文字,這段文字中包括用戶真實姓名,辦公地址,辦公電話等,可以通過chfn 來更改,我們可以通過chfn 來修改用戶信息,然后查看 /etc/passwd 的變化,再來用finger 來查詢用戶信息。幾個工具組合練習一下,也容易忘記;

實例六:自定義用戶的家目錄、SHELL類型、所歸屬的用戶組等;

添加用戶longcpu,并設置其用戶真實名字為ChinaCpu,其家目錄在/opt/longcpu,讓其歸屬為用戶組 linuxsir、root、beinan成員,其SHELL類型為tcsh ;

[root@localhost ~]# useradd; -c ChinaCpu; -d /opt/longcpu-G linuxsir,root,beinan -s /bin/tcsh; longcpu

注:添加用戶longcpu ,真實名是ChinaCpu ,家目錄設置在 /opt/longcpu ,是linuxsir,root,beinan 用戶組成員, SHELL是tcsh ;

[root@localhost ~]# ls -ld /opt/longcpu/注:是不是自動創建了longcpu的家目錄?drwxr-xr-x; 3 longcpu longcpu 4096 11月; 4 22:30 /opt/longcpu/[root@localhost ~]# more /etc/passwd |grep longcpu; 注:查看 /etc/passwd 中是否有longcpu用戶記錄;longcpu:x:510:510:ChinaCpu:/opt/longcpu:/bin/tcsh[root@localhost beinan]# finger longcpu; 注:查詢longcpu用戶的信息 ; Login: longcpuName: ChinaCpuDirectory: /opt/longcpu; Shell: /bin/tcshNever logged in.No mail.No Plan.[root@localhost beinan]# id longcpu 注:查詢UID和GID 以及所歸屬的用戶組;uid=510(longcpu) gid=510(longcpu) groups=510(longcpu),0(root),500(beinan),502(linuxsir)

關于在添加新用戶時用戶組,添加用戶時,如果不使用-n 參數,系統會自動建一個與用戶名同名的用戶組;

實例七:練習用戶有效期限;

在本例中,我們主要來看看-e參數,這個參數還是比較重要的,是設定用戶的帳號什么時候過期;

在本例中,我們添加了一個帳號,并且設置其帳號在 2005年11月04日之前是有效的,一旦過了這個日期,便停止其登錄;

[root@localhost ~]# useradd; -e 11/04/2005 cooler; 注:添加用戶cooler,并設置其有效期為2005年11月04日;[root@localhost ~]# passwd cooler; 注:設置用戶cooler密碼;Changing password for user cooler.New UNIX password: 注:設定cooler的密碼;Retype new UNIX password: 注:核實設定密碼;passwd: all authentication tokens updated successfully.; 注:設置成功;

如何驗證-e 是不是真的有效?我寫這篇文檔的時間是 2005年11月05號,所以添加這個cooler用戶肯定是過期的,就是他有密碼也不能登錄;

有的弟兄會問,他把有效期的記錄放在哪里了呢?其實我們在以前的文檔中已經說過了,是寫在/etc/shadow文件中了;

請參考: 《用戶(user)和用戶組(group)配置文件詳解》

標簽: Linux系統
主站蜘蛛池模板: 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 烟台游艇培训,威海游艇培训-烟台市邮轮游艇行业协会 | 河南凯邦机械制造有限公司 | 北京成考网-北京成人高考网| 贴片电容代理-三星电容-村田电容-风华电容-国巨电容-深圳市昂洋科技有限公司 | 压滤机滤板_厢式_隔膜_板框压滤机滤板厂家价格型号材质-大凯环保 | 电机保护器-电动机综合保护器-浙江开民 | 进口便携式天平,外校_十万分之一分析天平,奥豪斯工业台秤,V2000防水秤-重庆珂偌德科技有限公司(www.crdkj.com) | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 广东青藤环境科技有限公司-水质检测| 电销卡_稳定企业大语音卡-归属地可选-世纪通信 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 数码听觉统合训练系统-儿童感觉-早期言语评估与训练系统-北京鑫泰盛世科技发展有限公司 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 全自动烧卖机厂家_饺子机_烧麦机价格_小笼汤包机_宁波江北阜欣食品机械有限公司 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 水性漆|墙面漆|木器家具漆|水漆涂料_晨阳水漆官网 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 板式换网器_柱式换网器_自动换网器-郑州海科熔体泵有限公司 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 水冷式工业冷水机组_风冷式工业冷水机_水冷螺杆冷冻机组-深圳市普威机械设备有限公司 | 外贸网站建设-外贸网站设计制作开发公司-外贸独立站建设【企术】 | 衬塑管道_衬四氟管道厂家-淄博恒固化工设备有限公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 米顿罗计量泵(科普)——韬铭机械| 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 |