بلاگی در مورد دیجیتال،بینایی و یادگیری ماشین

اکانت های من:
www.github.com/salehjg
www.iranled.com/forum

طبقه بندی موضوعی

Linux :: Shared aliases in /etc/profile.d not applied to root user, why?


I suspect that you execute the su command without dash (-), and if so, it will invoke an interactive non-login shell. Combine with you have only following in /root/.bashrc:

# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
    # Shell is non-interactive.  Be done now!
    return
fi

(not source /etc/bashrc)

whereas if you directly login or use su -, it will invoke a login shell, /etc/profile is read and sharedAliases.sh will be execute.

To see which file is read with different shells, adding logs to all these files by executing the following commands as root:

echo "echo 'running /etc/bashrc'" >> /etc/bashrc
echo "echo 'running /etc/profile'" >> /etc/profile
echo "echo 'running /root/.bashrc'" >> ~/.bashrc

Create an test alias:

# echo "alias list='ls'" > /etc/profile.d/test.sh

Now, login as normal user and use su, you will see something like this:

$ su
Password: 
running /root/.bashrc
bash-3.2# list
bash: list: command not found

and with su -:

$ su -
Password: 
running /etc/profile
running /root/.bashrc
# list
total 226540
-rw-rw-r-- 1 root root     60148987 Apr  1  2011 3241948.flv


https://serverfault.com/questions/321763/linux-shared-aliases-in-etc-profile-d-not-applied-to-root-user-why
موافقین ۰ مخالفین ۰ ۹۶/۰۳/۰۷
صالح جمالی

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی