本文主要讲述在mac系统中如何对普通用户进行sudo提权与使用root启动程序(pycharm)
sudo进行用户提权
mac中的文件系统与linux类似,所有在mac上对普通用户的提权与linux中相似
首先需要知道当前需要提权的用户名或当前用户名,可通过命令w或who查看当前登陆的用户
打开终端
JuliedeMacBook-Air:~ julie-zhou$ w
21:48 up 4 days, 1:17, 2 users, load averages: 3.03 2.75 2.96
USER TTY FROM LOGIN@ IDLE WHAT
julie-zhou console - 四20 4days -
julie-zhou s000 - 21:46 - w
JuliedeMacBook-Air:~ julie-zhou$
JuliedeMacBook-Air:~ julie-zhou$
JuliedeMacBook-Air:~ julie-zhou$ who
julie-zhou console Aug 5 20:38
julie-zhou ttys000 Aug 9 21:46
再切换到root用户(在修改提权相关配置文件时需要使用root权限)
JuliedeMacBook-Air:~ julie-zhou$
JuliedeMacBook-Air:~ julie-zhou$ su - root
Password: # 需要输入root密码
JuliedeMacBook-Air:~ root#
当看到当前用户为root时提示切换成功,这时候需要找到配置文件/etc/sudoers
编辑文件,编辑前需要备份
JuliedeMacBook-Air:~ root# cp /etc/sudoers /etc/sudoers-bak # 未防止编辑错误,首先对配置文件进行备份
JuliedeMacBook-Air:~ root# vim /etc/sudoers
# 添加一行
julie-zhou ALL = (ALL) NOPASSWD:ALL
# julie-zhou 表示提权的用户
# ALL = (ALL) 第一个 ALL 指示允许从任何终端访问sudo
# 第二个 (ALL:ALL)指示sudo命令被允许任意用户、任意组执行
# NOPASSWD 表示不需要输入密码而可以sudo执行的命令
注意:在保存退出时应当使用wq! 强制保存退出,因为当前文件为只读权限
测试提权
JuliedeMacBook-Air:~ julie-zhou$
JuliedeMacBook-Air:~ julie-zhou$ tail -2 /etc/sudoers # 这里以获取/etc/sudoers最后两行为例,可以看到没有使用sudo时是权限拒绝
tail: /etc/sudoers: Permission denied
JuliedeMacBook-Air:~ julie-zhou$
JuliedeMacBook-Air:~ julie-zhou$ sudo tail -2 /etc/sudoers # 使用sudo后则能够查看查看该文件最后两个
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d
JuliedeMacBook-Air:~ julie-zhou$
JuliedeMacBook-Air:~ julie-zhou$
mac中使用root启动程序
找到程序对应的主启动文件
首先找到需要启动的程序,这里以pycharm为例,一般mac程序都在安装在/Applications目录下,也可在该目录下寻找对应的程序包目录
进入到安装目录后找到程序的主启动文件,一般mac中程序包的一个主启动文件的路径为/Applications/对应的程序包目光里/Contents/MacOS/,在这个目录下会有一个对应的主启动文件。
文件的启动方式很简单,cd到程序主启动文件路径下执行./主启动文件
如果当前用户为root则可以使用./的方式启动,如果不是root可以切换到root用户或者sudo启动,在使用./启动时默认是使用当前用户
JuliedeMacBook-Air:MacOS julie-zhou$ ./pycharm # 使用当前用户启动程序
JuliedeMacBook-Air:MacOS julie-zhou$ sudo ./pycharm # 使用sudo提取启动,启动后程序则root权限
使用以上方式启动时,存在一个弊端,那就是当启动程序的shell终端呗关闭,则启动的程序也会关闭,所有在启动时还需要使用nohup将程序放到后台执行。
使用下面命令执行,在关闭shell终端时,启动的程序仍然运行
JuliedeMacBook-Air:MacOS julie-zhou$ nohup sudo ./pycharm > /dev/null