Sponsored Content
Top Forums Shell Programming and Scripting Strange thing with 'cut' in a script Post 302303409 by sport on Thursday 2nd of April 2009 02:25:08 PM
Old 04-02-2009
Question Strange thing with 'cut' in a script

When I run the script I have just created, I get a strange scenario around the following code:
echo "Check for duplicate UID's, each user should have a unique user ID (UID)"
echo "IF a UID is displayed fix or document why it is required!"
echo "Press enter to continue!"
read a
cut -d: -f3 /etc/passwd | sort -n | uniq -d
echo
echo "Verify current directory (.) does not exist in root's PATH!"

after going through most of the script and using the 'read a' as a pausing mechanism, when I hit enter at the above point instead of getting the correct value returned from the cut line, it just sits at a cursor, and hangs; it just adds a line for everytime you hit return. Now if I take the 'read a ' out at this point and just let it run right through the string works as it is supposed to. Can anyone see why it would behave in this fashion?
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl script strange problem

Hi All, I have one strange problem in perl script. Bellow is the contents of the script i am trying to write: #!/usr/local/bin/perl my $module_list = ''; my @running_module; my $count=0; my $flag=0; my $ccprojecthome=$ENV{CCPROJECTHOME}; @module_list = `cat... (2 Replies)
Discussion started by: vaibhav
2 Replies

2. Shell Programming and Scripting

Strange behaviour from script in crontab

Apologies if this has been mentioned elsewhere, my search skills may be lacking somewhat today. I have a script that does the following (as a test): find . -name "*.txt" -exec file {} \; >>$sFullFilePath Now, the variable is set up up correctly in the script too. When I run the script... (1 Reply)
Discussion started by: PilotGoose
1 Replies

3. Shell Programming and Scripting

shell script which will delete every thing under a directory except a single sub dire

write a shell script which will delete every thing under a directory except a single sub directory (2 Replies)
Discussion started by: alokjyotibal
2 Replies

4. Shell Programming and Scripting

Expect script strange behaviour

Hi people, I'm having some strange behaviour with an 'expect' script. spawn csession blah expect "Username: " send "userblah\r" expect "Password: " send "passwordblah\r" interact When I execute the script as root it runs perfectly. However, when executed as any other... (0 Replies)
Discussion started by: GarciasMuffin
0 Replies

5. Shell Programming and Scripting

Strange "cut" command's behaviour

Hi, Suppose if I have a file having data like this: $ cat file.txt A B C D And, if I do a cut operation like this: $ cut -d" " -f2 file.txt The output is A C D This is the same for even if we try to get the field 3 with -f3 (assume line 2 has 3 fields : C E F). The above... (1 Reply)
Discussion started by: royalibrahim
1 Replies

6. Solaris

Strange thing with solaris ls on nfs shared directory

I shared from linux server a dir with nfs3,solaris mount ok,and can tar files,but if i do ls or cp.. on mnt i have mount the nfs share root@solaris: mnt $ touch 2 root@solaris: mnt $ ls -lh ls: can't read ACL on .: Permission denied root@solaris: mnt $ ls 1.tar 2 root@solaris: mnt $ cp... (4 Replies)
Discussion started by: Linusolaradm1
4 Replies

7. Windows & DOS: Issues & Discussions

Strange thing: arp and windows

A strange situation: i have configured a piranha lvs router(two load balancer and two real servers), the virtual ip is 192.168.3.252. Linux and windows clients are on a different subnet (192.168.3.0) and i use route route add -net 192.168.3.0/24 dev eth0on linux for /F "tokens=2 delims=:"... (3 Replies)
Discussion started by: Linusolaradm1
3 Replies

8. Shell Programming and Scripting

Strange Script behaviour with Grep

Here is my script LOGDATE=`date '+%Y-%m-%d %k:%M' | cut -c1-15` echo $LOGDATE echo "grep '$LOGDATE' /tmp/logs/vel.log >10min_log" grep '$LOGDATE' /tmp/logs/vel.log>10min_log grep '$LOGDATE' /tmp/logs/vel.logHere is the output of the script -rw-r--r-- 1 wluser wluser 0 May 3... (7 Replies)
Discussion started by: mohtashims
7 Replies

9. Shell Programming and Scripting

Using :<<cut / cut to comment out block of bash script

I am using : << cut / cut to comment out block of code. Works fine on few lines of script, then it gives me this cryptic error when I try to comment out about 80 lines. The "warning " is at last line of script. done < results 169 echo "END read all positioning parameters" 170... (8 Replies)
Discussion started by: annacreek
8 Replies
rbac(5)                                                 Standards, Environments, and Macros                                                rbac(5)

NAME
rbac - role-based access control DESCRIPTION
The addition of role-based access control (RBAC) to the Solaris operating environment gives developers the opportunity to deliver fine- grained security in new and modified applications. RBAC is an alternative to the all-or-nothing security model of traditional superuser- based systems. With RBAC, an administrator can assign privileged functions to specific user accounts (or special accounts called roles). There are two ways to give applications privileges: 1. Administrators can assign special attributes such as setUID to application binaries (executable files). 2. Administrators can assign special attributes such as setUID to applications using execution profiles. Special attribute assignment along with the theory behind RBAC is discussed in detail in "Role Based Access Control" chapter of the System Administration Guide: Security Services. This chapter describes what authorizations are and how to code for them. Authorizations An authorization is a unique string that represents a user's right to perform some operation or class of operations. Authorization defini- tions are stored in a database called auth_attr(4). For programming authorization checks, only the authorization name is significant. Some typical values in an auth_attr database are shown below. solaris.jobs.:::Cron and At Jobs::help=JobHeader.html solaris.jobs.grant:::Delegate Cron & At Administration::help=JobsGrant.html solaris.jobs.admin:::Manage All Jobs::help=AuthJobsAdmin.html solaris.jobs.user:::Cron & At User::help=JobsUser.html Authorization name strings ending with the grant suffix are special authorizations that give a user the ability to delegate authorizations with the same prefix and functional area to other users. Creating Authorization Checks To check authorizations, use the chkauthattr(3SECDB) library function, which verifies whether or not a user has a given authorization. The synopsis is: int chkauthattr(const char *authname, const char *username); The chkauthattr() function checks the policy.conf(4), user_attr(4), and prof_attr(4) databases in order for a match to the given authoriza- tion. If you are modifying existing code that tests for root UID, you should find the test in the code and replace it with the chkauthattr() function. A typical root UID check is shown in the first code segment below. An authorization check replacing it is shown in the second code segment; it uses the solaris.jobs.admin authorization and a variable called real_login representing the user. Example 1: Standard root check ruid = getuid(); if ((eflag || lflag || rflag) && argc == 1) { if ((pwp = getpwnam(*argv)) == NULL) crabort(INVALIDUSER); if (ruid != 0) { if (pwp->pw_uid != ruid) crabort(NOTROOT); else pp = getuser(ruid); } else pp = *argv++; } else { Example 2: Authorization check ruid = getuid(); if ((pwp = getpwuid(ruid)) == NULL) crabort(INVALIDUSER); strcpy(real_login, pwp->pw_name); if ((eflag || lflag || rflag) && argc == 1) { if ((pwp = getpwnam(*argv)) == NULL) crabort(INVALIDUSER); if (!chkauthattr("solaris.jobs.admin", real_login)) { if (pwp->pw_uid != ruid) crabort(NOTROOT); else pp = getuser(ruid); } else pp = *argv++; } else { For new applications, find an appropriate location for the test and use chkauthattr() as shown above. Typically the authorization check makes an access decision based on the identity of the calling user to determine if a privileged action (for example, a system call) should be taken on behalf of that user. Applications that perform a test to restrict who can perform their security-relevant functionality are generally setuid to root. Programs that were written prior to RBAC and that are only available to the root user may not have such checks. In most cases, the kernel requires an effective user ID of root to override policy enforcement. Therefore, authorization checking is most useful in programs that are setuid to root. For instance, if you want to write a program that allows authorized users to set the system date, the command must be run with an effective user ID of root. Typically, this means that the file modes for the file would be -rwsr-xr-x with root ownership. Use caution, though, when making programs setuid to root. For example, the effective UID should be set to the real UID as early as possible in the program's initialization function. The effective UID can then be set back to root after the authorization check is performed and before the system call is made. On return from the system call, the effective UID should be set back to the real UID again to adhere to the principle of least privilege. Another consideration is that LD_LIBRARY path is ignored for setuid programs (see SECURITY section in ld.so.1(1)) and that shell scripts must be modified to work properly when the effective and real UIDs are different. For example, the -p flag in Bourne shell is required to avoid resetting the effective UID back to the real UID. Using an effective UID of root instead of the real UID requires extra care when writing shell scripts. For example, many shell scripts check to see if the user is root before executing their functionality. With RBAC, these shell scripts may be running with the effective UID of root and with a real UID of a user or role. Thus, the shell script should check euid instead of uid. For example, WHO=`id | cut -f1 -d" "` if [ ! "$WHO" = "uid=0(root)" ] then echo "$PROG: ERROR: you must be super-user to run this script." exit 1 fi should be changed to WHO=`/usr/xpg4/bin/id -n -u` if [ ! "$WHO" = "root" ] then echo "$PROG: ERROR: you are not authorized to run this script." exit 1 fi Authorizations can be explicitly checked in shell scripts by checking the output of the auths(1) utility. For example, for auth in `auths | tr , " "` NOTFOUND do [ "$auth" = "solaris.date" ] && break # authorization found done if [ "$auth" != "solaris.date" ] then echo >&2 "$PROG: ERROR: you are not authorized to set the date" exit 1 fi SEE ALSO
ld.so.1(1), chkauthattr(3SECDB), auth_attr(4), policy.conf(4), prof_attr(4), user_attr(4) System Administration Guide: Security Services SunOS 5.10 15 Jul 2003 rbac(5)
All times are GMT -4. The time now is 01:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy