Hi
While trying to exceute the following command I`m getting the error below
FILENAME SALES PIPE "ls -tr /data/sharedall/cofeeds/comit/weekfeeds|tail -1";
ERROR: Insufficient authorization to access PIPE.
ERROR: Error in the FILENAME statement.
Bascially i`m trying to retrieve the file name of the last updated file in a folder from EG itself.
The code runs fine when I run SAS in command propmt(UNIX). Also it has failed in the scheduler LSF
Would be great if some experts advice , if this error can be rectified or any other alternatives exist.
I'm not an expert on stored processes, but the two individuals responding to a similar question in the following thread are. The thread may contain the info you are looking for:
Hi,
Though I recommend contacting Tech. Support for this . You may try this in SMC, since it has worked for me. Expand Server Manager -> SASAPP - > SASAPP - Logical Workspace Server . Right click on SASAPP - Workspace Server. Go to Options Tab -> Advanced Options -> Launch Properties - > Check Allow XCMD.
I have had more luck using this code
systask command "<command>" wait status=my_name;
%put &sysrc. &my_name;
It does two things:
1 - It returns the output from UNIX.
2 - If &SYSRC does not equal 0 then I know my systask command is wrong. If &my_name does not return a 0 then I know my Unix command was the issue.
I don't know if this will help you - but I have had various issues with using FILENAME with the PIPE. So I started using systask command. Here's a good SAS GloFo paper about the topic:
http://www.lexjansen.com/wuss/2009/cod/cod-walsh.pdf
This approach may help you isolate where the issue is.
Tricia
By default SAS sets the NOXCMD option which restricts users to submit any OS level commands from their SAS sessions/codes. To resolve the issue, you need to ask your SAS admin to click the check box "Allow XCMD" within SAS Management Console -> Server Manager -> SAS App - Workspace Server -> properties -> Options ->Advanced Options -> Launch Properties tab.
Be aware that allowing XCMD would allow SAS users to submit and exceute pretty much ALL OS commands from their SAS sessions/codes and there is a high security risks.
Regards,
Matt
And another bystander weighs in...
I think this is one of those issues that doesn't have a black or white solution.
I've been both an advanced developer and a SAS administrator, and have therefore had the chance to see the issue from both sides.
I will agree that in theory making "x" commands available doesn't open a security hole. On the other hand, it does expose what is supposed to be a purpose-acquired SAS server to running whatever programs users might want to spin up on it (and yes, I have seen this happen.) This can have implications for performance and reliability.
On the other hand, I have seen very valid requirements AS PART OF SAS PROCESSING to occasionally invoke O/S commands, using a facility such as the "x" command.
The key word here is "occasional". 85 percent of the requests relate to file processing. Another 10 percent relate to "zip" type functionality, which is more and more met from within SAS.
My considered response is that people who need file processing capabilities can do it with the SAS functions that process O/S files. They are very rich, and easy to use. I have yet to see a request come up that they can't satisfy. Yes, they require learning something new, but this is a SAS server; you ARE expected to use SAS on it.
Your particular example shouldn't take more than half an hour to an hour to implement using SAS tools (and believe me, I've done this kind of thing and more). Therefore, my response as a SAS administrator would be that you can meet your needs without enablement of the "x" command, so request denied.
Tom
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.