1
alexrezit 2012-11-08 21:10:43 +08:00
在 etc 里面设置 global 的.
|
2
killpanda 2012-11-08 21:11:18 +08:00
开启启动然后登录到 root 用户下,设置一下配置文件?
|
4
gavingeng 2012-11-08 22:41:07 +08:00
su到root用户的shell是/bin/sh,通过chsh来修改shell
Login: root Uid [#]: 0 Gid [# or name]: 0 Generated uid: Home directory: /var/root Shell: /bin/bash Full Name: System Administrator Office Location: Office Phone: Home Phone: 修改/etc/passwd root的shell为/bin/bash |
5
ch4ng13 OP @gavingeng 之前注意到了这个区别。按你说的用
# chsh -s /bin/bash 改掉了 root 默认的 shell,但问题仍没有解决。我比较了 osx 与 debian su 之后 export 出来的环境变量的区别:在 osx 上 su 之后 $USER 仍为之前的用户帐号;而在 debian 上 su 之后,UID 直接就变成 0 了。 根据 su man page (osx) 上所说,su 之后 UID 能不能切为 0 (root),关键看当前的用户是否在 admin 或 wheel 组里。而我的当前的帐号确定已经在 admin 组里了。 所以我之前考虑的方向一直是 /etc/pam.d/su 里动作。(可能钻到牛角尖里去了) |
6
ch4ng13 OP 这个问题有些诡异啊。
1 在上一帖中说到,将 root 的 SHELL 改成 bash 了。。。。然后又试着将 .bash_profile 改名为 .bashrc,现在的自定义设置全部生效了。 2 我用 ch4ng13 这个帐号开机登录系统,打开 Terminal.app ,默认的 SHELL 是 bash,这时所有的自定义设置放在 .bashrc 这个文件里无效,只有放在 .bash_profile 才有效。 3 在 (1) 成功后,我又将 (2) 的 .bash_profile 也改成 .bashrc,这时的自定义设置一如之前,还是无效的。 4 这太让人纠结了 ??? |
8
sinxccc 2012-11-08 23:54:14 +08:00
Try 'su -'
|
9
cabbala 2012-11-09 00:01:03 +08:00
@ch4ng13 osx 下bash的行为和Linux下不太一样的,一般linux都是去写.bashrc,但是osx下要去写.bash_profile
|
10
sinxccc 2012-11-09 00:24:05 +08:00
@cabbala 这是 login shell 和 普通 shell 的差别,什么系统都一样。Linux 下只要写 .bashrc 是因为它在默认的 profile 文件里引用 bashrc 了
|
11
ch4ng13 OP @sinxccc 这个命令好用。进去后 $USER 直接就是 root;.bash_profile 也有动作了(.bashrc 又不行了,据说这在 BSD-like OS 才是正常的)。
一并谢过参与讨论各位! |
12
ch4ng13 OP 是的,~/.bashrc, ~/.bash_profile 默认行为的差异,与 /etc/bashrc, /etc/profile, ... 等直接相关,不过这里面的坑好多,现在暂时没空去细究。
|
13
haha1903 2012-11-09 07:51:38 +08:00
su -, su - user 就可以了
|
14
muxi 2012-11-09 09:55:34 +08:00
sudo -i
|
15
hewigovens 2012-11-09 10:44:47 +08:00
我一般是在/etc/bashrc里添加一条:source ~/.bashrc
|
16
graypants 2013-07-05 19:25:11 +08:00
我也碰到类似问题,google到此处,并没能解决问题,最后发现root账户在~/.profile中设置别名就ok了...
|