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 Giúp đỡ về NIS trên Redhat4-U6-X86_64  XML
  [Question]   Giúp đỡ về NIS trên Redhat4-U6-X86_64 10/11/2012 09:47:54 (+0700) | #1 | 270867
hainm2090
Member

[Minus]    0    [Plus]
Joined: 10/09/2010 08:02:41
Messages: 8
Offline
[Profile] [PM]
Chào các bạn,

Mình đang build hệ thống NIS sever . Các gói cài đặt cần thiết cho NIS mình đã cài xong, mình đang tiến hành chỉnh sửa MakeFile để customize một vài feature theo ý của mình. Nhưng mình đọc lệnh trong makefile không thể hiểu nổi. Có bạn nào làm ơn giải thích giúp mình dòng lệnh dưới đây trong Makefile :

passwd.byname: $(PASSWD) $(SHADOW) $(YPDIR)/Makefile
@echo "Updating $@..."
@$(UMASK); \
$(MERGER) -p $(PASSWD) $(SHADOW) | \
$(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINUID) && $$3 != $(NFSNOBODYUID) ) \
print $$1"\t"$$0 }' | $(DBLOAD) -i $(PASSWD) \
-o $(YPMAPDIR)/$@ - $@
-@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@


Với các biến định nghĩa đầu file như sau :

AWK = /bin/gawk
MAKE = /usr/bin/gmake
UMASK = umask 066
YPBINDIR = /usr/lib64/yp
MERGER = $(YPBINDIR)/yphelper
MINUID=500
MINGID=500
NFSNOBODYUID=65534
NFSNOBODYGID=65534


Cám ơn các bạn nhiều !
[Up] [Print Copy]
  [Question]   Giúp đỡ về NIS trên Redhat4-U6-X86_64 27/11/2012 17:19:07 (+0700) | #2 | 271379
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Code:
356	ifeq (x$(MERGE_GROUP),xtrue)
   357	group.byname: $(GROUP) $(GSHADOW) $(YPDIR)/Makefile
   358		@echo "Updating $@..."
   359		@$(UMASK); \
   360		$(MERGER) -g $(GROUP) $(GSHADOW) | \
   361		$(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINGID) && $$3 != $(NFSNOBODYGID) ) \
   362		print $$1"\t"$$0 }' | $(DBLOAD) -i $(GROUP) -o $(YPMAPDIR)/$@ - $@
   363		-@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@


- @ đứng trước một lệnh trong Makefile: chạy lệnh này nhưng đừng `echo` output ra màn hình.
- $@: tên của target
- $$i: có thể hiểu tương tự như $i trong shell script

Bạn thử thay hết các biến kia thành giá trị được định nghĩa bên trên rồi viết thành 1 cái shell script xem. Chạy từng dòng, từng phần một để hiểu rõ hơn, ví dụ đoạn này:

Code:
/usr/lib/yp/yphelper -g /etc/group /etc/shadow | awk -F: '!/^[-+#]/ { if ($1 != "" && $3 >= 500 && $3 != 65534) print $1"\t"$0 }'


sẽ liệt kê các users "thật sự" trên hệ thống (uid >= 500).
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|