banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Tune the User Environment and System Environment Variables  XML
  [Question]   Tune the User Environment and System Environment Variables 23/11/2007 04:22:24 (+0700) | #1 | 99410
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Nguồn: Section 2, chương 18, phần II - LPI

Khi bạn tạo một account mới trên Linux, những thông tin cơ bản là cần thiết cho user đó trong quá trình khởi tạo. Khi user logs vào hệ thống, họ cần:
  • Một tập hợp các biến môi trường nhỏ nhất, bao gồm PATH có ý nghĩa cho hệ thống của bạn
  • Các file cấu hình cơ bản trong thư mục home của họ

Số lượng thông tin mặc định bạn cung cấp có thể thay đổi từ đơn giản đến chi tiết nhất.

1. Systemwide Startup Scripts

Khi bash shell khởi động, nó tìm kiếm một số lượng các files script cấu hình trong /etc/profile. Những lệnh trong file này được thi hành tại thời điểm login và chứa đựng thông tin khởi động toàn cục cho tất cả users. Một ví dụ về /etc/profile trong Fedora 8:
Code:
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

pathmunge () {
	if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
	   if [ "$2" = "after" ] ; then
	      PATH=$PATH:$1
	   else
	      PATH=$1:$PATH
	   fi
	fi
}

# ksh workaround
if [ -z "$EUID" -a -x /usr/bin/id ]; then 
	EUID=`id -u`
	UID=`id -ru`
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
	pathmunge /sbin
	pathmunge /usr/sbin
	pathmunge /usr/local/sbin
fi

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

if [ -x /usr/bin/id ]; then
	USER="`id -un`"
	LOGNAME=$USER
	MAIL="/var/spool/mail/$USER"
fi

HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
    	. $i
    fi
done

unset i
unset pathmunge

Bạn có thể nhìn thấy những thiết lập shell cơ bản cho user, bao gồm việc gán một số lượng các biến môi trường, việc kiểm tra EUID, id của người dùng, ... Trong file này bạn hãy chú ý những dòng có chứa PATH= - nó làm nhiệm vụ add thêm một thư mục vào biến môi trường PATH. Trong trường hợp này, người quản trị hệ thống mong chờ rằng phần lớn các user sẽ cần chạy những chương trình nằm trong /usr/bin.

Những lệnh trong /etc/profile chỉ được thi hành duy nhất một lần lúc login. Vì lý do đó, việc định nghĩa các chức năng (functions) và bí danh (aliases) điển hình không được đưa vào /etc/profile, thay vào đó chúng nằm trong .bashrc của mỗi người dùng riêng biệt, hoặc /etc/bashrc - được gọi là .bashrc của user. Các lệnh trong .bashrc sẽ được thi hành mỗi khi một shell mới khởi tạo, và chúng có hiệu lực với tất cả các shell mới đó.
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Re: Tune the User Environment and System Environment Variables 23/11/2007 05:12:48 (+0700) | #2 | 99418
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
2. Setting the Home Directory for New Accounts

Khi tạo một account mới, thông thường bạn cũng muốn tạo một thư mục HOME mặc định cho người dùng của account đó. Trong Linux, thư mục home nằm trong /home/username, nhưng bạn có thể định nghĩa nó theo cách nào bạn muốn.

Khi bạn tạo một thư mục home mới, nó có thể bao gồm những file khởi động cho shell của người dùng, cho desktop của họ, hoặc các ứng dụng X Windows. Để thuận tiện cho quá trình tự động tập hợp các thư mục của người dùng mới, một ví dụ về thư mục home sẽ được tạo trong thư mục skeleton /etc/skel.Thư mục này sẽ chứa tất cả các file và thư mục con mà mọi người dùng mới đều cần đến. Ví dụ về /etc/skel:
Code:
$ ls -la /etc/skel
total 21
drwxr-xr-x   4 root root  1024 2007-11-07 08:34 .
drwxr-xr-x 130 root root 10240 2007-11-22 09:50 ..
-rw-r--r--   1 root root    33 2007-08-31 21:20 .bash_logout
-rw-r--r--   1 root root   176 2007-08-31 21:20 .bash_profile
-rw-r--r--   1 root root   124 2007-08-31 21:20 .bashrc
-rw-r--r--   1 root root   500 2007-10-25 03:18 .emacs
drwxr-xr-x   2 root root  1024 2007-10-17 23:52 .gnome2
drwxr-xr-x   3 root root  1024 2002-08-12 16:26 .kde
-rw-r--r--   1 root root   658 2007-10-11 21:16 .zshrc

Thư mục /etc/skel trong ví dụ này chứa:
  • 4 file cấu hình cho shell (.bash_profile, .bashrc, .bash_logout, .zshrc)
  • 1 file cấu hình cho Emacs (.emacs)
  • 1 thư mục cho KDE (.kde)
  • 1 thư mục cho GNOME (.gnome2)


Ví dụ trên minh hoạ các files mặc định có thể bao gồm trong 1 bộ cài đặt account của người dùng mới. Thêm vào đó có thể bao gồm những file mặc định cho những môi trường desktop khác như GNOME, KDE, ...

Khi một account mới được tạo cùng với thư mục home, toàn bộ nội dung của /etc/skel được copy qua thư mục home mới đó. Thư mục home và toàn bộ nội dung của nó được gán cho UIDGID của account mới, tạo chủ quyền người dùng mới cho những file khởi tạo. Sau đó họ có thể thoải mái chỉnh sửa những file và thư mục này nếu cần thiết.

Với quyền quản trị hệ thống, bạn có thể thêm, chỉnh sửa, hoặc xóa /etc/skel nếu muốn.
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|