Linux嵌入式编程Linux基础操作查询UID及GIDid主要参数:id[-agu][用户名]无参数在没有加任何参数的情况下,查询的是当前操作用户的用户名,UID,GID和所处的主用户组和附属用户组-a显示所有信息-g只显示组ID号-u只显示用户ID例:ididrootid-agroot——用户及权限管理指令一、用户和组的查询指令Linux嵌入式编程Linux基础操作查询用户信息finger主要参数finger[-ls参数选项][用户名]作用:用户名(也被称为登录名Login)、真实名字(NAME)、在哪个终端登录(Tty)、写状态、空闲时间(Idle)、登录时间(LoginTime)、办公地点、办公电话等无参数默认以短格-s来输出登录本机的所有用户信息-l采用长格式-s显示短格式例:fingerfinger-l或finger-sfinger-sroot——用户及权限管理指令一、用户和组的查询指令Linux嵌入式编程Linux基础操作查询登录主机用户whoami:显示自身用户名称w:显示目前登录用户信息who:显示目前登陆的所有用户信息通过文件查看用户和群组cat/etc/group|greproot:显示结果:root:x:1001:root,group_name表示root这个组有两个用户root,group_namecat/etc/passwd|greproot显示结果root:x:0:0:root:/root:/bin/bash——用户及权限管理指令一、用户和组的查询指令Linux嵌入式编程Linux基础操作添加用户组groupadd常用参数groupadd[-ggid][-o][-r][-f]groupname-ggid除非使用-o参数不然该值必须是唯一,不可相同。数值不可为负。-o允许设置相同组id的群组-r建立系统组例:groupaddjavaskygroupadd-g666google设置GID为666的用户组,GID小于500的通常是留给系统账号使用——用户及权限管理二、群组管理指令Linux嵌入式编程Linux基础操作修改用户组groupmod常用参数groupmod[-ggid[-o]][-ngroup_name]group-ggid指定id-o允许设置相同组id的群组-ngroup_name修改用户组名为group_name例:groupmod-ngooglejavaskygroupmod–g600javasky删除群组groupdel常用参数groupdelgroup例:groupdeljavasky——用户及权限管理二、群组管理指令Linux嵌入式编程Linux基础操作添加用户useradd常用参数useradd[-uuid[-o]][-ggroup][-Ggroup,...][-dhome][-sshell][-ccomment][-eexpire][-ppasswd]name-ccomment新帐号password档的说明栏。-dhome_dir新帐号每次登入时所使用的home_dir。并当成登入时目录名称。-eexpire_date帐号终止日期。日期的指定格式为MM/DD/YY。-ginitial_groupgroup名称或以数字来做为用户登入起始用户组。用户组名须为现有存在的名称。用户组数字也须为现有存在的用户组。预设的用户组数字为1。-sshell用户登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。-uuiduid用户的ID值。必须为唯一的ID值-Ggroups归属组群,组名用逗号隔开——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作在建立用户时,可用如下方法查看:查看用户路径方法ls-ld/opt/longcpu/查看用户信息方法more/etc/passwd|greplongcpufingerlongcpuidlongcpu(1)例建一用户longcpu,不使用任何参数useraddlongcpu(2)例添加一个新用户longcpu,标注用户全名ChinaCpu;useradd-cChinaCpulongcpu——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作(3)例:自定义用户的家目录、SHELL类型、所归属的用户组等;useradd-cChinaCpu-d/opt/longcpu-Glinuxsir,root,beinan-s/bin/tcshlongcpu(4)例:添加了一个帐号,并且设置其帐号有效期,一旦过了这个日期,便停止其登录;useradd-e11/04/2005coolermore/etc/passwd|grepcoolerfingercooleridcooler——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作修改用户usermod修改用户账号主要参数usermod[必要参数][选择参数][用户账户]-m建立用户的根目录-s指定shell-c备注加上备注-d目录指定根目录-e时间指定有效期-g群组指定用户群-G群组指定用户的次群组例:更改登录目录usermod-d/home/9linuxroot范例2:改变用户的UIDusermod-u777root——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作删除用户usermod主要参数userdel[-r]名称-r删除用户的同时,也一并把其家目录和文件一同删除例:删除用户bnnb,但不删除其家目录及文件userdelbnnb例:删除用户lanhaitun,其家目录及文件一并删除userdel-rlanhaitun——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作创建或修改用户密码passwd主要参数passwd[-dl][用户名]无参数命令后面不接任何参数或用户名,则表示修改当前用户的密码;请看下面的例子;例:修改当前用户密码passwd例:更改其它用户密码(以root权限来创建或修改密码)passwdjavasky例:删除用户密码passwd-djavasky例:锁定用户beinan不能更改密码passwd-lbeinan——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作切换用户su主要参数su[-mp][-ccommand][-][USER[ARG]]-m,-p执行su时不改变环境变量-l好像是重新登陆一样,工作目录也会改变例:变更帐号为root并在执行ls指令后退出变回原使用者su-clsroot例:在root下切换到普通用户su[用户名]例:在普通用户下,进入root或其它用户,输入su[用户名]suyecypassword:注:su-或su-l切换至root——用户及权限管理三、用户管理指令Linux嵌入式编程Linux基础操作文件权限在下图中我们可以了解到具体的权限表示:——用户及权限管理四、权限管理Linux嵌入式编程Linux基础操作常用参数chmod[-cfvR][ugoa...][[+-=][rwxX]...][,...]file...u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是。+表示增加权限、-表示取消权限、=表示唯一设定权限。r表示可读取,w表示可写入,x表示可执行,X表示只有当该档案是个子目录或者该档案已经被设定过为可执行。-c:若该档案权限确实已经更改,才显示其更改动作-f:若该档案权限无法被更改也不要显示错误讯息-v:显示权限变更的详细资料-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)o+rwx——用户及权限管理四、权限管理Linux嵌入式编程Linux基础操作例:将档案file1.txt设为所有人皆可读取:chmodugo+rfile1.txtchmodug+w,o-wfile2.txtchmoda+rfile3.txt此外chmod也可以用数字来表示权限,语法为:chmodabcfile其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。r=4,w=2,x=1若要rwx属性则4+2+1=7;若要rw-属性则4+2=6(去掉执行权限);若要r-x属性则4+1=5(去掉写权限)。例:chmod777filechmod771file——用户及权限管理四、权限管理